关于F2812 ECAN的定时邮递计数器溢出检测
临近年底,总是大事小事,一起来,最近搞ECAN错误处理机制的时候,发现,每隔一定周期,TCOF 定时邮递计数器溢出错误被检测到,自己查了一些资料,发现属于物理上自己的累加,通过程序,可对其清零或复位。程序如下:void InitECan(void)
{
……
ECanaShadow.CANMC.bit.MBCC = 1; // 成功发送消息后,定时邮递计数器清零 ECanaShadow.CANMC.bit.TCC = 1; //定时邮递计数器MSB清零
……
// 邮箱中断屏蔽寄存器
ECanaRegs.CANMIM.all = 0xFFFFFFFF;
// 邮箱中端级别设置寄存器 1代表使用中断线1,0代表使用中断线0
// 与邮箱相关的中断,例如消息的发送或者接收所响应的中断
ECanaRegs.CANMIL.all = 0;
// 全局中断标志位1被置位
ECanaRegs.CANGIF0.all = 0xFFFFFFFF;
ECanaRegs.CANGIM.bit.MTOM = 0x1; // mailbox time-out
ECanaRegs.CANGIM.bit.TCOM = 0x1; // time counter overflown
ECanaRegs.CANGIM.bit.AAIM = 0x1; // acknowledge failure
ECanaRegs.CANGIM.bit.WDIM = 0x1; // write refusal
ECanaRegs.CANGIM.bit.WUIM = 0x1; // wake-up
ECanaRegs.CANGIM.bit.RMLIM = 0x1; // messages lost
ECanaRegs.CANGIM.bit.BOIM = 0x1; // bus closed
ECanaRegs.CANGIM.bit.EPIM = 0x1; // Error-passive
ECanaRegs.CANGIM.bit.WLIM = 0x1; // warning
/* then, map all interrupts to ECAN1INT */
ECanaRegs.CANGIM.bit.GIL = 0x1;
/* Enable interrupt line0 */
ECanaRegs.CANGIM.bit.I0EN = 0x1; // 中断0用于消息目标一类的中断
/* Enable interrupt line1 */
ECanaRegs.CANGIM.bit.I1EN = 0x1; //中断1用于系统相关一类的中断
}
// INT9.6
interrupt void ARCH_ECAN1INTA(void)// eCAN-A
{
#if 1
// 定时邮递计数器溢出标志位
if(ECanaRegs.CANGIF1.bit.TCOF1 == 0x1)
{
ECanaRegs.CANGIF1.bit.TCOF1 = 0x1;
valo_Can_Error = 0x04;
MsgCtl_uchar(valo_Can_Error); // 给上位机发送检测到的错误帧数据
}
#endif
……
PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; EINT;
}
程序如上,但是,我现在不明白,为什么这个MSB会被置位。。
年底 多总结 多分享
关于MSB置位CAN使用熟练的朋友帮忙解答 zhangmangui 发表于 2014-1-18 13:47 static/image/common/back.gif
年底 多总结 多分享
关于MSB置位CAN使用熟练的朋友帮忙解答
嗯,总结看来要到年后去了,最近公司的年会弄的头疼:Q pinda_ 发表于 2014-1-18 13:50 static/image/common/back.gif
嗯,总结看来要到年后去了,最近公司的年会弄的头疼
祝你好运抽大奖 zhangmangui 发表于 2014-1-18 13:54 static/image/common/back.gif
祝你好运抽大奖
:L研发的没抽奖资格怎么破呢 之前想弄这块来着,做个标记,回头研究下 zhangmangui 发表于 2014-1-18 13:54 static/image/common/back.gif
祝你好运抽大奖
前几天一直没什么时间来想这个问题,今天想了下,搞定了。
问题就是出在这个TCOF上, 定时邮递计数器溢出标志位,也可以叫做邮戳吧,相当于一个计数器。
只是它是物理层的。。。。
回来再做详细说明。
raoxianbin 发表于 2014-1-18 16:40 static/image/common/back.gif
之前想弄这块来着,做个标记,回头研究下
https://bbs.21ic.com/icview-630498-1-1.html
有兴趣的话,这边的还有个问题,年前是没法弄了,年后来搞,到时候一起玩吧:lol pinda_ 发表于 2014-1-18 17:45 static/image/common/back.gif
https://bbs.21ic.com/icview-630498-1-1.html
有兴趣的话,这边的还有个问题,年前是没法弄了,年后来搞 ...
en好到时候一定向你请教。。。 raoxianbin 发表于 2014-1-18 18:03 static/image/common/back.gif
en好到时候一定向你请教。。。
请教谈不上,一起讨论吧:D
页:
[1]