Kann ein ATmega8 Interrupts "verlieren"?

Gast #2215648
Lesenswert?

Guten Tag.

Da ich gerade ein Programm mit sehr vielen Interrupts erstelle frage ich 
mich ob der ATmega8 Interrupts verlieren kann.

Dabei geht es nur um Interrupts unterschiedlicher Herkunft z.B. Timer, 
Eingang1, Eingang2.


Anders gefragt:

Was passiert wenn der Timer1 einen Interrupt auslöst und der AVR in den 
Interrupt springt, nun aber bevor "I" wieder gesetzt wurde ein neuer 
Interrupt  von einer anderen Quelle z.B. ADC ausgelöst wird?
Gast #2215655
Lesenswert?

Die Interupt Flags werden gesetzt und bleiben gesetzt bis der Interupt 
durch zugriff auf ein bestimmtes Register automatisch zurückgesetzt 
wurde oder manuel durch schreiben einer 1 auf das entsprechende 
Interuptflag. Sie werden nach Ihrer Priorität abgearbeitet. Das heißt 
jedesmal wenn ein Interupt Handler beendet wird und das Global Interupt 
enable Flag wieder auf 1 geht kommt der nächste dran.
Gast #2215664
Lesenswert?

Ja, kann er. Zum Beispiel wenn ein Interrupt zwei Mal ausgelöst wird und 
vom ersten Auslösen der Interrupthandler noch nicht angesprungen wurde.

Rüdiger schrieb:
> Was passiert wenn der Timer1 einen Interrupt auslöst und der AVR in den
> Interrupt springt, nun aber bevor "I" wieder gesetzt wurde ein neuer
> Interrupt  von einer anderen Quelle z.B. ADC ausgelöst wird?
Der ADC-Interrupt wird durch Setzen des entsprechenden Flags gemerkt und 
nach verlassen des Timer-Interrupt ausgeführt. Er geht also nicht 
verloren.

Das steht aber auch alles im Detail im Datenblatt. Die Basics findest Du 
auf Seite 14-16: Reset and Interrupt Handling
Bitte selbst lesen und anschließend fragen, falls es noch Unklarheiten 
gibt.
http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf
Gast #2215667
Lesenswert?

Jedoch kann man das alles im Datenblatt nachlesen. Sollte man sich 
einmal kommplett durchlesen. Ich meine ALLES lesen und verstehen. Man 
muß sich ja nicht alles merken, denn man kann ja später noch mal im 
Detail nachschlagen.
Aber es passirt dann öfters, daß man sich denkt: "Mensch da war doch 
was, da guck ich doch noch mal schnell nach, ich glaube dieses Interupt 
Flag wurde eventuell nicht automatisch zurückgesetzt."

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