Forum: Mikrocontroller und Digitale Elektronik Interrupt-Buffer bei ARM genauso wie bei AVR?


von Fragender (Gast)


Lesenswert?

Hallo,
ich hätte eine eher allgemeine Frage zu STM32-Interrupts bzw. Interrupts 
in ARM-Controllern.
Bei AVR-Controllern ist es ja so: Wenn ich einen Interrupt disable und 
es tritt ein Interrupt auf, so wird gespeichert dass dieser da war. 
Sobald man den Interrupt wieder enabled, wird in die entsprechende ISR 
gesprungen.
Ist das beim STM32, bzw. anderen ARM-Controllern genauso?

von (prx) A. K. (prx)


Lesenswert?

Ja

von Fragender (Gast)


Lesenswert?

Hab gerade folgendes gefunden (S.809, Dokument RM0008 von ST) bei USART 
Interrupts:

The USART interrupt events are connected to the same interrupt vector 
(see Figure 301).
• During transmission: Transmission Complete, Clear to Send or Transmit 
Data Register
empty interrupt.
• While receiving: Idle Line detection, Overrun error, Receive Data 
register not empty,
Parity error, LIN break detection, Noise Flag (only in multi buffer 
communication) and
Framing Error (only in multi buffer communication).
These events generate an interrupt if the corresponding Enable Control 
Bit is set.

Soweit ich den letzten Satz versteh, generiert der nur einen Interrupt, 
wenn das entsprechende Control Bit gesetzt ist. Das heißt ja dann, dass 
wenn ich z.B. mit:
1
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
disable, ein Interrupt verloren geht. Lieg ich richtig?

von pegel (Gast)


Lesenswert?

Sieh dir mal die Beschreibung zu ClearITPendingBit an.

von Fragender (Gast)


Lesenswert?

Ok, also falls das PendingBit gelöscht wird, wird sozusagen die 
Interruptanfrage gelöscht (wohl auch falls dieser disabled ist).
So wie ich das versteh, ist das PendingBit für den IRQ verantwortlich. 
Also falls das gesetzt ist, wird dieser ausgeführt, sobald dieser wieder 
enabled wird.
Findet man das irgendwo so in der Form geschrieben?

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.