Ich habe das Problem, dass die Sekunden nicht zurückgesetzt werden. Sie werde zwar zurückgesetzt aber der Timer zählt dann: 19, 29, 39, 49 ,59, 69, 79, 89, 99, 19, 11 u.s.w.
Wie kann ich das fixen ?
DerTechniikHelfer:
Danke für deine schnelle Hilfe.
Gibt es nicht einen schöneren Weg, ohne das die eine Stelle leer bleibt ?
Dein Timer-Code hat noch ein weiteres Problem: Zu jeder vollen Minute wird "Sekunde 0" übersprungen, denn in Deiner Programmlogik findet die Ausgabe auf Display und das delay() nur bei "while(Sekunden < 59)" statt.
Deshalb wäre nicht die Anzeige und das Delay von der Überlaufbedingung abhängig zu machen, sondern nur der Überlauf auf die nächste Minute, etwa:
Sekunden++;
if (Sekunden>=60)
{
Minuten++;
Sekunden=0;
}
Und danach folgt dann jedesmal eine Ausgabe, in jeder Sekunde und ohne die Null-Sekunde jeder vollen Minute zu überspringen.
Und eine "schöne Formatierung" mit führender Null in den Zahlen kannst Du mit den Funktionen sprintf() bzw. snprintf() hinbekommen, indem Du zunächst einen String ("char array") wie gewünscht formatierst, der dann auf LCD ausgegeben wird, etwa:
char buf[11]; // definiere einen nullterminierten String-Puffer
snprintf(buf,sizeof(buf),"%02d:%02d",Minuten, Sekunden); // formatiere die Zeit als nullterminierten String
lcd.setCursor(0, 1); // platziere die Schreibmarke
lcd.print(buf); // gib den String auf LCD aus