Sehr schön! Diese Controller sind wirklich mit allem ausgestattet.Overflow-Bit:
Das liefert Dir der Timer quasi selbst mit - das Timer/Counter Overflow Flag (TOVn). Es wird bei einem Timerüberlauf automatisch gesetzt (auch wenn der Interrupt selbst nicht scharf ist) - es wird beim Ausführen der entsprechenden ISR (und wenns auch nur Dein Reti ist) automatisch gelöscht (also in unserem Falle nicht, da IRQ nicht scharf). Du kannst es also irgendwann innerhalb des nächsten Überlaufes auslesen; um es zu löschen mußt Du eine 1 in das entsprechende Registerbit schreiben. (cave! üblicherweise sind in dem entsprechenden Interrupt-Flag-Register auch andere Interrupt-Flags (mit derselben Lösch-Mechanik), also kein Read-Modify-Write verwenden, klar?)
Ich nehm jetzt erst mal ein MacroJMP error:
Meiner meinung wäre es sogar so möglich:
direkt in der Interruptvektortabelle:
1tes Word: CBI Portregister, Ledbit
2tes Word: Reti
Code:
.macro nimp
reti
nop
.endmacro