打印
[CAN-bus/DeviceNet]

再次提问如何解决溢出问题

[复制链接]
1626|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mingze|  楼主 | 2007-8-20 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
五个SJA1000 CAN节点同时发送数据到一个节点上,这个节点当然啦是根据ID优先级接收每个节点的数据,选用的是PELICAN,每次8个字节,加上一些描述字节,也就是每个节点发送13个字节,这样的话相当于每次65个字节,而缓冲区只有64个字节,溢出了怎么办? 

我的接收中断程序改成下面耗时很少的方法,结果还是溢出(串口不时收到BF),怎么办?
#pragma interrupt_handler int4_isr:6
void int4_isr(void)
{
 //external interupt on INT4

 Reg_SJA[1] = 0X04;//释放缓冲区

  if(Flag_Init&0x08)
  {
   SendData(0xBF);
  }
}

相关帖子

沙发
ourdoctor| | 2007-8-20 14:10 | 只看该作者

re

#pragma interrupt_handler int4_isr:6
void int4_isr(void)
{
  //external interupt on INT4
  //disable sja1000 receive
  
  Reg_SJA[1] = 0X04;//释放缓冲区

  if(Flag_Init&0x08)
  {
   SendData(0xBF);
  }
}

使用特权

评论回复
板凳
mingze|  楼主 | 2007-8-20 14:16 | 只看该作者

请教ourdoctor

//disable sja1000 receive是什么意思?进入中断就不接收了,那发送端的数据岂不丢了?

使用特权

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

本版积分规则

5

主题

12

帖子

1

粉丝