Hallo,
da ich etwas penibel bin, möchte ich die ISR EXAKT zu einem bestimmten
Ereignis ausführen lassen.
Die ISR (Timer1-OVF / ATmega8) wird ja 3(?) Takte nach Beendigung des
aktuellen Assembler-Befehls ausgeführt. Nun hat so ein Teil ja auch
manchmal mehr als 1 Takt, die ISR wird also nicht exakt X Takte später
ausgeführt, sondern mal X+1 oder X+2 Takte.
Frage:
Wie krieg ich innerhalb der ISR eine Synchronisierung hin?
Versucht habe ich es mit:
1 | in r18, TCNT1L
|
2 | Resync:
|
3 | in r19, TCNT1L
|
4 | cp r18, r19
|
5 | breq ReSync
|
Das beißt sich aber leider, da 'breq' selbst 2 Takte braucht.
Gibt es da eine andere Möglichkeit?
Grüße,
Freakazoid