Hi
Pack Mal das
}
while (u8g2.nextPage()); //Zeile ~36)
an das Ende von loop() - diese Page-Schleife schickt das Bild, Welches Du IN DIESER SCHLEIFE zeichnest, an das Display.
Die Änderungen außerhalb der do-while-Schleife werden nur noch die letzte page betreffen (gehe davon aus, daß die Inhalte, Die in dem Bildbereich gezeichnet werden, direkt übertragen werden - müsste man Mal austesten).
Ersetze Deine loop() Mal hier durch:void loop () {
DateTime now = RTC.now();
u8g2.clearBuffer(); // clear the internal memory
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_crox2hb_tr); // choose a suitable font
u8g2.setCursor(24, 10);
if (now.day() < 10) {
u8g2.print("0");
}
u8g2.print(now.day(), DEC);
u8g2.print('.');
if (now.month() < 10) {
u8g2.print("0");
}
u8g2.print(now.month(), DEC);
u8g2.print('.');
u8g2.print(now.year(), DEC);
//hier stand das while
u8g2.setFont(u8g2_font_helvR24_tn);
u8g2.setCursor(2, 43);
if (now.hour() < 10) {
u8g2.print("0");
}
u8g2.print(now.hour(), DEC);
u8g2.print(':');
if (now.minute() < 10) {
u8g2.print("0");
}
u8g2.print(now.minute(), DEC);
u8g2.print(':');
if (now.second() < 10) {
u8g2.print("0");
}
u8g2.print(now.second(), DEC);
} while (u8g2.nextPage());
//u8g2.sendBuffer(); // transfer internal memory to the display - denke unnötig, da mit Pages gearbeitet wird
delay (1000);
}
MfG
PS: Die RTC1307 ist eher ungenau, für nicht viel Mehr bekommst Du eine DS3231 - Die ist temperatur-kompensiert und soll nur wenige Sekunden IM JAHR falsch gehen.