Allgemeine Interrupt frage

Gast #1612623
Lesenswert?

Hallo,

angenommen ich habe eine Code:
1
cli();
2
....
3
Jede Menge toller C-Code
4
....
5
sei();

Dann sind ja während dieser Zeit die Interrupts gesperrt, wenn jetzt 
aber trotzem die Bedinungen für einen Interrupt während dieser Zeit 
gegeben sind ( z.b. Signal am Ext. Interrupt), wird dieser dann direkt 
nach der Reaktivierung abgearbeitet, oder geht der verloren ?

Gruß

Thomas
Gast #1612629
Lesenswert?

Die Interruptflags werden ja gesetzt, egal ob global die Interrupts 
aktiviert sind oder nicht.
Falls nach Reaktivieren des global interrupt enable (sei) gesetzte Flags 
gefunden werden und die entsprechenden Interrupts eingestellt sind, 
werden diese ausgeführt.
(die Reihenfolge der Abarbeitung bei mehreren Interrupts richtet sich 
glaube ich nach der Reihenfolge der Einsprungvektoren).
;-)
Gast #1612630
Lesenswert?

depends. I.d.R. wird das Flag gespeichert und der zugehörige Handler 
dann angesprungen (Priorität beachten bei mehreren IRQs!). Verloren geht 
'der Interrupt' i.d.R., wenn er mehrfach ausgelöst wird, dann wird der 
Handler (i.d.R.) nur ein Mal angesprungen.

Die Details stehen wie immer im Datenblatt :-)

HTH

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