打印
[ZLG-ARM]

请教关于SPI转CAN的延时问题

[复制链接]
3080|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlsong1983|  楼主 | 2008-9-9 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教关于SPI转CAN的延时问题。我们在使用CAN总线时,选择的CAN控制器是具有SPI接口的MCP2510,编写了利用SPI发送的函数SendOut()和中断接收函数Receive(),二者都是通过SPI操作CAN控制器的寄存器,从而实现数据的收发。时钟节拍设为1ms,其他节点收到数据后立即返回响应帧。在连续两次发送时,SendOut()之间加入一小段延时,如果采用操作系统的延时函数OSTimeDlyHMSM(0,0,0,1)就会出现接收丢数的现象,即使加长延时时间,也仍然会丢。而如果采用for循环进行延时,例如:        
for(k=0;k<1500;k++)
{;}
则不丢数。而且for循环的延时时间是短于OSTimeDlyHMSM(0,0,0,1)的。请问为什么两个延时会有不同的效果?

相关帖子

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

本版积分规则

57

主题

90

帖子

1

粉丝