interrupt void Ecan0ISR(void)
{
Can_receivecounter++;
DINT;
if(ECanaRegs.CANRMP.all&0x00040000)
{CANSXSRX18();
receiveflag18=1;
}
if(ECanaRegs.CANRMP.all&0x00080000)
{CANSXSRX19();
receiveflag19=1;
}
if(ECanaRegs.CANRMP.all&0x20000000)
{CANSXSRX29();
receiveflag29=1;
}
PieCtrlRegs.PIEACK.bit.ACK9 = 1;
EINT;
}
void CANSXSRX29(void)
{
ECanaRegs.CANRMP.all = (ECanaRegs.CANRMP.all|0x20000000);
a=ECanaMboxes.MBOX29.MDL.byte.BYTE0;
b=ECanaMboxes.MBOX29.MDL.byte.BYTE1;
}
上面是中断程序和接收邮箱程序