This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F2812 interrupts (CAN message lost)

We developed a control unit (master) with a 320F2812 and an oscillator (slave) with a 320F2802. They communicate by CANopen with 1MBaud.
Sometimes the master looses a PDO message. The slave sends the PDO message and the master hardware sends the aknowledge, but the message does not reach the software. The message will be lost.
What happens to a CAN interrupt, if another interrupt (e.g. timer) is happening and blocks the interrupts?
Is it possible that a CAN message can get lost in this case or does the DSP set the CAN interrupt after the other interrupt?

Best regards
Philipp

  • Philipp,

    a running interrupt service routine ISR1 will block a second interrupt request  from a second source (ISR2) for the duration of ISR1. However, at the end of ISR1 the latched interrupt flag of ISR2 will immediately trigger another interrupt request. So ISR2 will be delayed but never blocked. That's the default setup. If you would like to use a nested interrupt scheme with a priority based ISR system and a preemptive re-enabling of INTM, it is your responsibility to change the interrupt enable register(s) dynamically within your individual interrupt services.  For CAN interrupts there is no difference.

     

    Regards