通过SPCOMM控制单片机,如何缩小指令间的时间间隔?详情见内。谢谢!!

jiuyi 2000-08-28 08:50:00
通过SPCOMM控制单片机
当用spcomm 连续发送多条命令(一条指令接一条指令的发,而不是一次发出所有的指令)到串口时,出现指令执行错误。由于单片机一次只能接收一个字节的指令,怀疑是由于SPCOMM(或者是MS的writefile)把所有指令一次发出的原因造成的。故在每条指令之间加入150-200ms的延时,基本无此现象。

单片机每隔1ms就可接收一次PC机发过来的指令。

我的问题是:能否将指令发送间隔减小到几毫秒之内?
...全文
288 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt985 2001-06-01
  • 打赏
  • 举报
回复
48382关注!
jiuyi 2000-09-07
  • 打赏
  • 举报
回复
bitter:
多谢帮助!
问题已解决。
即采用上述方法。效果不错。
究其原因还是在单片机等待另一单片机耗时太多所致。
希望能多向您请教。

再次多谢!:-)

jiuyi 2000-08-31
  • 打赏
  • 举报
回复
我现在决定采用一次把指令全部发送给单片机,单片机收到后再一一转发给其它单片机
我想这样应该能够解决此问题。
多谢帮助!
希望能多向您请教。

另:用comport如何发二进制码,及如何用帧格式发送?
有否例子?
我的EMAIL:jiuyi@163.net

再次多谢!(-;
bitter 2000-08-31
  • 打赏
  • 举报
回复
我想你最好给PC->MCU的信息变成帧结构
在MCU中判断是否是一个整的信息包

<command><Byte Num><info1><info2>...<info n><crc><end Tag>
可根据要求取舍。
AT8920C51 没有spi接口吧!你用软件实现serial communication? 再看看程序吧。
再多的不好说了。


jiuyi 2000-08-30
  • 打赏
  • 举报
回复
bitter:
1.
Comport v2.61 是cport.zip吗?(TComport.pas)?

2.MCU is AT8920C51

再分析下再说。

先谢谢!!!

bitter 2000-08-30
  • 打赏
  • 举报
回复
jiuyi:

Q:PC一次只能发送一个字节的指令给单片机?
试一试 Comport v2.61我个人认为比Spcomm.好,可接收固定帧长或一个字节,发送一整帧。

Q:如果连续发送多条指令(每次一条)时,确是无效的。除非两条指令间的间隔足够长(200-300ms),才能保证指令全部执行。

如果是PC->MCU发生这种情况 ,我想你的MCU的代码能工作,但未必是优化的。也许造成延时,看起来PC侧的发送间隔长。
你用什么MCU Microchip,8031/51/96,....
jiuyi 2000-08-29
  • 打赏
  • 举报
回复
不成,是要一次顺序发送几条指令。用TTIMER不行。
现在的问题是两条指令的时间间隔小于一定的时间之后就无法正确执行指令啦。
怀疑是由于SPCOMM(或者是MS的writefile)把所有指令一次发出的原因造成的。
可否有方法使每条指令之间在发往串口时,有一定的时间间隔。因为单片机一次只能接收一个字节的指令,且接收两条指令之间至少要有1毫秒的时间间隔。
jiuyi 2000-08-29
  • 打赏
  • 举报
回复
bitter: 你好!
非常希望能和您交流!

单片机相对来说速度很快,在1毫秒内绝对可以接收到一条PC发来的指令。且无须同步

现在的问题是单片机一次只能接收一条指令。即PC一次只能发送一个字节的指令给单片机。
如果用按钮来执行操作,则一切正常。
而模拟的按钮连续操作时,则出现上述问题

即如果连续发送多条指令(每次一条)时,确是无效的。除非两条指令间的间隔足够长(200-300ms),才能保证指令全部执行。
从跟踪的情况来看是由于一次把多条指令全部发送出去造成的。增大两条指令间的间隔足够长后,
跟踪发现确实是一次一个指令的发送了。
何解?
bitter 2000-08-29
  • 打赏
  • 举报
回复
这个问题我想是这样的,因我也在用单片机和pc通讯。不知道两者之间是否有协议或者采用类似真结构的东西。造你的看法是因为pc是低速设备,MCU是高速设备。不太了解你的结构。不过,我估计不会是这样。

有空可以多切磋切磋
saipm 2000-08-28
  • 打赏
  • 举报
回复
用TTimer控制发送指令,改变其时间间隔,成不成不是一目了然了吗?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧