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