打印
[DSP编程]

求2808CAN接收中断例程

[复制链接]
1127|6
手机看帖
扫描二维码
随时随地手机跟帖
沙发
wangch_sh|  楼主 | 2013-11-26 13:22 | 只看该作者
找到一个例子。可是会卡死,开始可以接收到数据,一会就卡死了。
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
}
请高手指教,谢谢!

使用特权

评论回复
板凳
wangch_sh|  楼主 | 2013-11-26 15:34 | 只看该作者
没人知道吗?

使用特权

评论回复
地板
wangch_sh|  楼主 | 2013-11-26 18:26 | 只看该作者
知道了,硬件问题。

使用特权

评论回复
5
石摊摊| | 2013-11-26 19:56 | 只看该作者
有没有一起学习DSP的

使用特权

评论回复
6
zhangmangui| | 2013-11-26 23:38 | 只看该作者
wangch_sh 发表于 2013-11-26 18:26
知道了,硬件问题。

快来分享啊    硬件什么问题?

使用特权

评论回复
7
wangch_sh|  楼主 | 2013-11-27 08:12 | 只看该作者
一言难尽那。CAN通信管脚和数码管复用了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

318

主题

2817

帖子

5

粉丝