Hallo Leute! Ich schreibe ein Programm dass 2 Interrupts behandelt. Einmal zählt der Timer0 bis zum Outputcompare Wert und löst dort dann einen Interrupt aus. Der zweite ist der externe Interrupt. Das Problem ist jetzt, dass ich nicht weiß ob der externe Interrupt den Outputcompareinterrupt stört. Es soll so funktionieren, dass ich eine GENAU eine bestimmte Zeit zähle und während dessen die externen Interrupts zähle. d.h. wenn der externe Interrupt den anderen stört ist das nicht gut. Danke für eure Antwort MfG saschisch
Wenn deine Interrupt-Routinen als ISR bzw. SIGNAL deklariert sind, dann werden sie durch andere Interrupts nicht unterbrochen. D.h. wenn du grad im Timerinterrupt bist wird der ext. Interrupt erst dann ausgeführt, wenn die Timerinterruptroutine beendet ist. Was erst dann ein Problem darstellt wenn während des Timerinterrupts mehr als ein externer Interrupt auftritt. Umgekehrt ist es dasselbe, wenn in der ext.Interrupt-Routine der Timerinterrupt mehr als einmal kommen sollte. Aber das kannst du ja ausrechnen ob das vorkommen kann, die Interrupt-Routinen sollten sowieso so kurz wie möglich sein. Wenn eine Interrupt-Routine unterbrechbar sein soll, musst du sie mit INTERRUPT statt SIGNAL deklarieren, bzw. bei der neuen avr-libc mit einem komischen Konstrukt (siehe Doku).
Danke! Ich habe noch eine Frage, wird während des Interrupts(beim Ausführen) der Timer0 gestoppt? MfG saschisch
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.