Interrupts sind dafür da, daß man eben nicht dauernd nachprüfen muss ob etwas passiert ist...
Du schreibst nur eine spezielle Funktion, die sogenannte ISR (Interrupt Service Routine), diese wird dann vom AVR vollautomatisch ausgeführt, sobald das entsprechende Ereignis eintritt (also z.B. ein Pegelwechsel von Low nach High).
Für jeden Interrupt den du verwendest benötigst du eine ISR, in deinem Fall wären das also insgesamt 3, nämlich eine für den Timer und nochmal je eine für die beiden externen Interrupts.
Bei einer ISR ist darauf zu achten, daß sie möglichst kurz sein sollte, sehr aufwendige Berechnungen haben darin nichts zu suchen.
Ich kann dir, wenn ich später ein bischen Zeit habe, gerne mal ein kleines Beispielprogramm (in C) schreiben, dann lässt sich der ganze Zusammenhang und die Funktionsweise auch besser erklären.







Zitieren

Lesezeichen