Forum: Mikrocontroller und Digitale Elektronik Frage zu Prioritäten der Interupts


von Thomas (Gast)


Lesenswert?

Hallo Forum,
ich habe eine Frage zu den AVR Interrupts.
Wenn mein Programm z.B. in einem Timer
Interrupt steckt und just zu dieser Zeit
der UART RX Interrupt kommt. Was passiert?

von Günter König (Gast)


Lesenswert?

Tach Thomas,

sowie ich weiss, sind die Prioritäten folgendermassen gesetzt:

1.  Reset Interrupt
2.  Int 0
3.  Int 1
4.  Timer 1 / Counter 1   Capture
5.     "                "           Compare A
6.     "                "                  "       B
7.     "                "            Überlauf
8.  Timer 0 / Counter 0   Überlauf
9.  SPI
10. UART RX
11. UART UDRE
12. UART TX
13. Analogkomparator

Das heisst, der Interrupt 13 wird eine UART Routine nicht während des 
Laufs unterbrechen, umgekehrt aber schon.
Interrupt 1 schafft alle........

Zum Gruße,
Günter

von Jonas Diemer (Gast)


Lesenswert?

Yo, genau. das gilt aber nur, wenn die interrupts GLEICHZEITIG ausgelöst 
werden...

wenn der avr in nen interrupt springt, schaltet er automatisch alle 
interrupts ab (löschen des I bits im SREG, equivalent mit der cli 
instruktion). d.h. wenn ein interrupt im interrupt eintritt, muss der 
erstmal warten bis

a) die interrupt routine mit reti beendet wird

oder

b) bis in der interrupt routine sei (set interrupt flag -> enable global 
interrupts) aufgerufen wird.

Jonas

von Thomas (Gast)


Lesenswert?

Danke, alles klar

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
Noch kein Account? Hier anmelden.