Gast
#2719
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?
|
Anzeige
|
Frage zu Prioritäten der Interupts
Gast
#2719
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?
Gast
#2720
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
Gast
#2721
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
Gast
#2722
Danke, alles klar Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|