16.8.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).
OVRTIM interrupt flag is reset as the other interrupt sources of CANGIT register and is also reset entering in its dedicated
interrupt handler.
When the CAN node is in transmission and detects a Form Error in its frame, a bit Error will also be raised. Consequently,
two consecutive interrupts can occur, both due to the same error. When a MOb error occurs and is set in its own
CANSTMOB register, no general error is set in CANGIT register.
156
ATmega16/32/64/M1/C1 [DATASHEET]
7647O–AVR–01/15