Forum: Mikrocontroller und Digitale Elektronik Wozu Bestätigung des Interrupts ATMega16M1?


von Thomas (kosmos)


Lesenswert?

Hallo,

kann mir jemand erklären was es mit dieser Bestätigung genau aufsich 
hat, was passiert wenn man es nicht macht, wird nach dem beenden mittels 
reti kein weiterer Interrupt mehr aufgerufen oder landet man in einer 
Endlosschleife da immer wieder in die Interruptroutine eingesprungen 
wird nachdem man Sie verlassen/beendet hat?

20.9.2. Interrupt behavior
When an interrupt occurs, an interrupt flag bit is set in the 
corresponding MOb-CANSTMOB register or in the general CANGIT register. 
If in the CANIE register, ENRX  ENTX  ENERR bit are set, then the 
corresponding MOb bit is set in the CANSITn register.

To acknowledge a MOb interrupt, the corresponding bits of CANSTMOB 
register (RXOK, TXOK,...) must be cleared by the software application. 
This operation needs a read-modify-write software routine.

To acknowledge a general interrupt, the corresponding bits of CANGIT 
register (BXOK, BOFFIT,...) must be cleared by the software application. 
This operation is made writing a logical one in these interrupt flags
(writing a logical zero doesn’t change the interrupt flag value).

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die "Bestätigung" ist nötig, um dem µC mitzuteilen, daß der Interrupt 
bearbeitet wurde und die Interruptquelle den nächsten Interrupt auslösen 
darf.

von Thomas (kosmos)


Lesenswert?

ok, danke rufus.

von (prx) A. K. (prx)


Lesenswert?

Viele Interruptquellen bestätigen bei AVRs automatisch, sobald der 
Interrupt-Handler aufgerufen wird. Es gibt aber ein paar 
Peripheriemodule, bei denen diese Bestätigung mehr auslöst als nur die 
Freigabe der Interrupt-Logik. Bei denen muss man das im Handler zum 
richtigen Zeitpunkt selbst erledigen.

von Peter D. (peda)


Lesenswert?

A. K. schrieb:
> Viele Interruptquellen bestätigen bei AVRs automatisch

Aber nur die Timer- und Flankeninterrupts. Alle Interrupts mit Daten 
(CAN, UART, I2C, SPI, USB) tun dies nicht.

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.