Interrupt-Buffer bei ARM genauso wie bei AVR?

Gast #4525746
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?
Gast #4525788
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?
Gast #4525824
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?

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