求2808CAN接收中断例程
谁有2808CAN接收中断例程,麻烦传我一份。谢谢了。我邮箱:chenbing_xsh@163.com 找到一个例子。可是会卡死,开始可以接收到数据,一会就卡死了。
interrupt void ecan1_isr(void) //1号线上中断
{int MIV = 0;
asm (" NOP");
if(ECanaRegs.CANGIF1.bit.GMIF1) //1号线上中断是邮箱中断
{
MIV = ECanaRegs.CANGIF1.bit.MIV1; //找出中断邮箱
switch(MIV)
{
case 31:
break;
case 30:
break;
case 2: //2号邮箱接收中断
if(ECanaRegs.CANRMP.bit.RMP2)
{
ECanaRegs.CANRMP.bit.RMP2 = 1;
//TestMbox7 = ECanaMboxes.MBOX2.MDL.all;
//TestMbox8 = ECanaMboxes.MBOX2.MDH.all;
//TestMbox9 = ECanaMboxes.MBOX2.MSGID.all;
}
break;
case 3: //3号邮箱发送中断,清中断标示符
if(ECanaRegs.CANTA.bit.TA3)
{
ECanaShadow.CANTA.all = 0;
ECanaShadow.CANTA.bit.TA3 = 1;
ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;
}
break;
case 0: //0号邮箱接收中断,
//TestMbox4 = ECanaMboxes.MBOX0.MDL.all;
//TestMbox5 = ECanaMboxes.MBOX0.MDH.all;
//TestMbox6 = ECanaMboxes.MBOX0.MSGID.all;
ECanaRegs.CANRMP.bit.RMP0 = 1;
Rec_l = ECanaMboxes.MBOX0.MDL.all;
Rec_h = ECanaMboxes.MBOX0.MDH.all;
break;
}
}
ECanaRegs.CANGIF1.bit.GMIF1=1;
ECanaRegs.CANTA.all = 0xFFFFFFFF; /* Clear all TAn bits */
ECanaRegs.CANRMP.all = 0xFFFFFFFF; /* Clear all RMPn bits */
ECanaRegs.CANGIF0.all = 0xFFFFFFFF; /* Clear all interrupt flag bits */
ECanaRegs.CANGIF1.all = 0xFFFFFFFF;
PieCtrlRegs.PIEACK.all |= 0x100; // Issue PIE ack
}
请高手指教,谢谢! 没人知道吗? 知道了,硬件问题。 有没有一起学习DSP的 wangch_sh 发表于 2013-11-26 18:26 static/image/common/back.gif
知道了,硬件问题。
快来分享啊 硬件什么问题? 一言难尽那。CAN通信管脚和数码管复用了。
页:
[1]