1.11.1 The INTCON1 Register May Be Incorrectly Set

When implementing CAN and UART message reception with the respective interrupts, the INTCON1 register may be set to an incorrect value in the main() routine if the UxRXIE bit is cleared, preventing future ISR entry.

Work Around

In the main() routine, reset the device when the INTCON1 register is a non-zero value (INTCON1 != 0x00) as shown in the example below:

int main(void)
{
    // Other routines
    if(INTCON1 != 0x00)
    {
       asm("RESET");
    }
}

Affected Silicon Revisions

A2A3
XX