Ich sehe eigentlich keinen Fehler.
Entferne mal bei der Timerkonfiguration folgende Zeile:
TIMSK = (1<<OCIE2);
Wenn du nämlich einmal Interrupts global freigeben solltest, dann wird auch der CompareMatch-Interrupt des Timer2 ausgelöst. Bei dem Rücksprung (reti) wird dann das Interrupt-Flag gelöscht, du wirst es also im Hauptprogramm nicht mehr pollen können.
Die Sekunden, Minuten und Stunden müssen kein "volatile unsigned int" sein, es reicht "uint8_t" (unsigned char).
Ansonsten sehe ich leider keinen Fehler.
Dirk
Entferne mal bei der Timerkonfiguration folgende Zeile:
TIMSK = (1<<OCIE2);
Wenn du nämlich einmal Interrupts global freigeben solltest, dann wird auch der CompareMatch-Interrupt des Timer2 ausgelöst. Bei dem Rücksprung (reti) wird dann das Interrupt-Flag gelöscht, du wirst es also im Hauptprogramm nicht mehr pollen können.
Die Sekunden, Minuten und Stunden müssen kein "volatile unsigned int" sein, es reicht "uint8_t" (unsigned char).
Ansonsten sehe ich leider keinen Fehler.
Dirk