Ich habe das nun wie folgt gelöst. Ein leichtes Flackern ist zwar noch zu erkennen bei einem Wertewechsel aber das ist zu verkraften.
/*############## Uhrzeit anzeigen ##############*/
if(Stunde != now.hour()){ // prüfen, ob sich die aktuelle Stunde (now.hour) geändert hat
sprintf(s,"%02u", Stunde);
tft.setTextColor(BLACK);
tft.setCursor(20, 37);
tft.print(s);
sprintf(s,"%02u", now.hour());
tft.setTextColor(WHITE);
tft.setCursor(20, 37);
tft.print(s);
}else{
sprintf(s,"%02u", now.hour());
tft.setCursor(20, 37);
tft.print(s);
}
tft.setCursor(57, 37);
tft.print(":");
if(Minute != now.minute()){ // prüfen, ob sich die aktuelle Minute (now.minute) geändert hat
sprintf(s,"%02u", Minute);
tft.setTextColor(BLACK);
tft.setCursor(64, 37);
tft.print(s);
sprintf(s,"%02u", now.minute());
tft.setTextColor(WHITE);
tft.setCursor(64, 37);
tft.print(s);
}else{
sprintf(s,"%02u", now.minute());
tft.setCursor(64, 37);
tft.print(s);
}
tft.setCursor(101, 37);
tft.print(":");
if(Sekunde != now.second()){ // prüfen, ob sich die aktuelle Sekunde (now.second) geändert hat
sprintf(s,"%02u", Sekunde);
tft.setTextColor(BLACK);
tft.setCursor(108, 37);
tft.print(s);
sprintf(s,"%02u", now.second());
tft.setTextColor(WHITE);
tft.setCursor(108, 37);
tft.print(s);
}else{
sprintf(s,"%02u", now.second());
tft.setCursor(108, 37);
tft.print(s);
}
Jahr = now.year();
Monat = now.month();
Tag = now.day();
Stunde = now.hour();
Minute = now.minute();
Sekunde = now.second();