Hallo,
bin mit meinem Projekt ein ganzes Stück weiter gekommen. Nur habe ich heute zufällig festgestellt, dass der Doppelpunkt als Sekundentaktanzeige aller 5x, sprich aller 10 Sekunden kurz verzögert. Manchmal bleibt der : etwas länger stehen und mancmal das Leerzeichen. Aller 4 bis 5 Anzeigen, nie richtig konstant.
Das ist die Funktion wo die : Sekundenanzeige drin steckt. Im Anhang der komplette Sketch. Wenn die Auswertung in der Funktion es verzögern würde, wäre es doch nur einmal aller 60sec. Laut meiner Meinung. Also muß etwas anderes in der loop ca. aller 10sec. mehr Rechenzeit benötigen. Wieder die Dallas Funktion? Die hatte schon einmal meinen Sketch ausgebremst. Jetzt nutze ich sie allerdings asynchron. Sollte passen.
Ansonsten macht der Sketch ohne Tastendruck immer die gleichen Aufgaben.
Dallas Sensoren Wandelbefehl geben,
Taster abfragen, nur wenn Taster gedrückt wurde, aktuelle Daten auf SD schreiben und File auslesen,
abgelaufene Zeit seit µC Reset auf Display anzeigen,
Dallas Temperaturen einlesen,
Dallas Temperaturen auf Display ausgeben,
jede Sekunde RTC Zeit auslesen,
RTC Zeit auf Display ausgeben,
Die Sekunden der laufenden Zeit seit µC Reset laufen jedoch ohne stocken auf dem Display durch.
Ideen was hier aller 10sec. mehr Rechenzeit beansprucht?
// gibt das Datum und Zeit von DS3231RTC auf das Display aus
void RtcWriteToDOGM(int SpalteY, int ZeileX)
{
lcd.setCursor(SpalteY,ZeileX);
if (tage < 10) lcd.print(0);
lcd.print(tage);
lcd.print(".");
if (monate < 10) lcd.print(0);
lcd.print(monate);
lcd.print(".");
int Jahr = jahre-2000; // kürzt die Jahreszahl auf 2 Stellen
if (Jahr < 10) lcd.print(0);
lcd.print(Jahr);
lcd.print(" "); // Leerzeichen Abstand zwischen Datum und Uhrzeit
if (stunden < 10) lcd.print(0);
lcd.print(stunden);
Modulo = sekunden % 2; // : blinkt im Sekundentakt
if (Modulo == 0)
{ lcd.write(0x3A); } // gib : Zeichen aus, interner DOGM Zeichensatz
else
{ lcd.print(" "); }
if (minuten < 10) lcd.print(0);
lcd.print(minuten);
}
