[CAN-bus/DeviceNet] 再次提问如何解决溢出问题

[复制链接]
2444|2
 楼主| mingze 发表于 2007-8-20 14:01 | 显示全部楼层 |阅读模式
五个SJA1000&nbsp;CAN节点同时发送数据到一个节点上,这个节点当然啦是根据ID优先级接收每个节点的数据,选用的是PELICAN,每次8个字节,加上一些描述字节,也就是每个节点发送13个字节,这样的话相当于每次65个字节,而缓冲区只有64个字节,溢出了怎么办?&nbsp;<br /><br />我的接收中断程序改成下面耗时很少的方法,结果还是溢出(串口不时收到BF),怎么办?<br />#pragma&nbsp;interrupt_handler&nbsp;int4_isr:6<br />void&nbsp;int4_isr(void)<br />{<br />&nbsp;//external&nbsp;interupt&nbsp;on&nbsp;INT4<br /><br />&nbsp;Reg_SJA[1]&nbsp;=&nbsp;0X04;//释放缓冲区<br /><br />&nbsp;&nbsp;if(Flag_Init&0x08)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;SendData(0xBF);<br />&nbsp;&nbsp;}<br />}<br /><br />
ourdoctor 发表于 2007-8-20 14:10 | 显示全部楼层

re

#pragma&nbsp;interrupt_handler&nbsp;int4_isr:6<br />void&nbsp;int4_isr(void)<br />{<br />&nbsp;&nbsp;//external&nbsp;interupt&nbsp;on&nbsp;INT4<br />&nbsp;&nbsp;<b><i>//disable&nbsp;sja1000&nbsp;receive</i></b><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;Reg_SJA[1]&nbsp;=&nbsp;0X04;//释放缓冲区<br /><br />&nbsp;&nbsp;if(Flag_Init&0x08)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;SendData(0xBF);<br />&nbsp;&nbsp;}<br />}<br />
 楼主| mingze 发表于 2007-8-20 14:16 | 显示全部楼层

请教ourdoctor

//disable&nbsp;sja1000&nbsp;receive是什么意思?进入中断就不接收了,那发送端的数据岂不丢了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

12

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部