Die Methode ist nicht optimal, aber dort wird Text nur übermalt, wenn sich der Text ändert/aktualisiert, flackert dann nur noch 1x pro Minute.
Zudem wird dass ständige geflackere von dem blinkenden Doppelpunkten noch gefördert
char lastTimeDisplay[15] = "";
char lastDateDisplay[15] = "";
void readAndPrintRTC()
{
DateTime now = rtc.now();
check_SummerTime(); // Aufruf der Funktion zur Überprüfung der Sommerzeit
adjustForDST(now);
char dateDisplay[15];
char timeDisplay[15];
sprintf(dateDisplay, "%.02d.%.02d.%.2d", now.day(), now.month(), now.year());
sprintf(timeDisplay, "%.02d:%02d", now.hour(), now.minute());
if (strcmp(timeDisplay, lastTimeDisplay) != 0)
{
display.fillRect(10, 20, 220, 70, BLACK);
display.setTextColor(WHITE);
display.setFont(&calibri40pt7b);
display.setCursor(10, 70);
display.print(timeDisplay);
strcpy(lastTimeDisplay, timeDisplay); // Speichere den aktuellen Zeitstring
}
if (strcmp(dateDisplay, lastDateDisplay) != 0)
{
display.fillRect(240, 20, 150, 70, BLACK);
display.setTextColor(WHITE);
display.setFont(&calibri40pt7b);
display.setCursor(240, 70);
display.print(dateDisplay);
strcpy(lastDateDisplay, dateDisplay); // Speichere den aktuellen Datumsstring
}
}