Forum: Mikrocontroller und Digitale Elektronik Kann ein ATmega8 Interrupts "verlieren"?


von Rüdiger (Gast)


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?

von Uwe (Gast)


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.

von Rüdiger (Gast)


Lesenswert?

Gut .. War mir nicht sicher ob ich das richtig verstanden habe.

Also kann ich höchstens bei Zeitkritischen Programmen (Interrupt welches 
auf ein weiteres Interrupt wartet) Probleme bekommen.

von Chris (Gast)


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

von Uwe (Gast)


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

von Rüdiger (Gast)


Lesenswert?

Rüdiger schrieb:
> Gut .. War mir nicht sicher ob ich das richtig verstanden habe.

von Falk B. (falk)


Lesenswert?

Siehe Interrupt.

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.