Forum: Mikrocontroller und Digitale Elektronik AVR IRQs


von Tom K. (Gast)


Lesenswert?

Hallo!

Habe da mal ein paar allgemeine Fragen zu Interrupts:

1. Ist es richtig, daß während Interrupts disabled sind (in einem CLI - 
SEI Programmabschnitt), inzwischen aufgetretene Interrupts "gemerkt" 
werden und einen Taktzyklus später nach SEI ausgeführt werden?

2. Wenn dem so ist, ist es möglich abzufragen, ob ein Interrupt in jener 
"Warteschlange" steht?

3. Ist es möglich einen solchen in der Queue befindlichen 
Interrupt-Aufruf zu verhindern (so daß er also beim Setzen des I-Flags 
durch z.B. SEI nicht ausgeführt wird)?

tschüß Tom

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

1. Ja, siehe Datenblatt:
   If one or more interrupt conditions occur when the
   Global Interrupt Enable bit is cleared
   (zero), the corresponding Interrupt Flag(s) will be
   set and remembered until the Global
   Interrupt Enable bit is set (one), and will be
   executed by order of priority.

2. Ja, indem man das entsprechende Flag ausliest.

3. Ja, indem man das entsprechende Flag löscht, genaueres steht im 
Datenblatt.

Andreas

von Tom K. (Gast)


Lesenswert?

Danke Andreas,

hätte ich mir allerdings auch denken können <shame>!

tschüß Tom

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.