что то не пошла. на что то ругается. переписал на st7565 из 1202 и либы st7565. ох и замороченно написали либу st7565. не сразу понял почему не работает
сначала хотел простым путем: выводить нужные мне символы через вывод картинки, но там белеберда у них с видеобуфером. в нуле по Y нормально рисует. пытаешься поднять и начинаются чудеса. на spi переписывать не стал, ногодрыгом сделал. если нужно будет скину
Библиотека для скетча из #44
спасибо. а то я вчера начал свою писать))
что то не пошла. на что то ругается. переписал на st7565 из 1202 и либы st7565. ох и замороченно написали либу st7565. не сразу понял почему не работает
сначала хотел простым путем: выводить нужные мне символы через вывод картинки, но там белеберда у них с видеобуфером. в нуле по Y нормально рисует. пытаешься поднять и начинаются чудеса. на spi переписывать не стал, ногодрыгом сделал. если нужно будет скину
сделал люксметр из этого плеера. недуюсь кто то что нибудь в том же корпусе тоже уместит
Библиотека для скетча из #44
часы на монохромном дисплее 12864 на контроллере ST7567 (uc1701)
с использованием библиотеки https://github.com/olikraus/U8glib_Arduino
размер прошивки зависит от выбранных шрифтов, увы в других библиотеках шрифты очень маленькие
пс. сегодня (смотрите дату сообщения) выложена новая версия библиотеки https://github.com/olikraus/U8g2_Arduino
#include "U8glib.h" U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 #include "RTClib.h" RTC_DS1307 RTC; uint8_t Hour = 0 ; uint8_t Min = 0 ; uint8_t Sec_d = 0 ; const char *Time(uint16_t rtime) { // создаем текстовую строку с часами и минутами static char buf[6]; buf[0] = ( Hour / 10 ) + '0'; buf[1] = ( Hour % 10 ) + '0'; buf[2] = ':'; buf[3] = ( Min / 10 ) + '0'; buf[4] = ( Min % 10 ) + '0'; buf[5] = '\0'; return buf; } const char *Sec(uint16_t r_sec) { // создаем текстовую строку с секундами static char buf[3]; buf[0] = '.'; buf[1] = ( Sec_d / 10 ) + '0'; buf[2] = ( Sec_d % 10 ) + '0'; buf[3] = '\0'; return buf; } void drawTime( uint16_t rtime ) { //рисуем часы и минуты u8g.setFont(u8g_font_gdr25n); //огроиный шрифт u8g.drawStr( 8, 40, Time(rtime) ); } void drawSec( uint16_t r_sec ) { // рисуем секунды u8g.setFont(u8g_font_gdr17n); // средний шрифт u8g.drawStr( 92, 40, Sec(r_sec) ); } void drawHour_Min(void) { drawTime(0); u8g.drawFrame(0,0,u8g.getWidth(), u8g.getHeight()); // ЧЕРТИМ РАМКУ ПО КОНТУРУ } void drawSec(void){ drawSec(0); u8g.drawFrame(2,2,u8g.getWidth(), u8g.getHeight()-4);// еще рамка внутри рамки u8g.drawVLine(125, 2, 60); // } void setup(void) { u8g.setRot180(); // Разворот экрана u8g.setContrast(0); // 0 - прозрачный фон RTC.begin(); } void loop(void) { DateTime now = RTC.now(); Hour = now.hour(); Min = now.minute(); Sec_d = now.second(); u8g.firstPage(); do { drawHour_Min(); // для часов и минут drawSec(); // секунды, если закомментировать, сек не отрисуются } while( u8g.nextPage() ); delay(100); }