Interruptvorrang

Gast #284737
Lesenswert?

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
#284739
Lesenswert?

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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren