void high_isr(void) { // High priority CAN interrupt if ((RXB0CONbits.RXFUL)&&(vehicle_fn_poll0 != NULL)) vehicle_fn_poll0(); if ((RXB1CONbits.RXFUL)&&(vehicle_fn_poll1 != NULL)) vehicle_fn_poll1(); PIR3=0; // Clear Interrupt flags }
void high_isr(void) { // High priority CAN interrupt if ((RXB0CONbits.RXFUL)&&(vehicle_fn_poll0 != NULL)) { can_id = ((unsigned int)RXB0SIDL >>5) + ((unsigned int)RXB0SIDH <<3); can_filter = RXB0CON & 0x01; can_datalength = RXB0DLC & 0x0F; // number of received bytes can_databuffer[0] = RXB0D0; can_databuffer[1] = RXB0D1; can_databuffer[2] = RXB0D2; can_databuffer[3] = RXB0D3; can_databuffer[4] = RXB0D4; can_databuffer[5] = RXB0D5; can_databuffer[6] = RXB0D6; can_databuffer[7] = RXB0D7; RXB0CONbits.RXFUL = 0; // All bytes read, Clear flag vehicle_fn_poll0(); }