[CAN-bus/DeviceNet] 有关ZLG的CAN232中的环形缓冲区的问题

[复制链接]
3109|5
 楼主| VIPWEIWEI 发表于 2007-7-24 16:08 | 显示全部楼层 |阅读模式
这个环形缓冲区有读写两个指针,它们是怎么工作的呀?为什么资料上说当写指针追上读指针就说明环形缓冲区已满?
xwj 发表于 2007-7-24 16:13 | 显示全部楼层

这都不能理解?

想想环形跑道上赛跑,最快的追上最慢的了,那么意味着什么?
 楼主| VIPWEIWEI 发表于 2007-7-24 16:23 | 显示全部楼层

明白了!

挺有道理的。那如果写的慢,而读的快,是不是会读到旧的数据呀,CAN232程序是如果考虑的?
 楼主| VIPWEIWEI 发表于 2007-7-24 16:55 | 显示全部楼层

if语句里的两个条件分别是什么意思?

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&nbsp;&nbsp;&nbsp;CAN1:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((0&nbsp;!=&nbsp;CANRcvBufApp.FullFlag1)&nbsp;||&nbsp;(CANRcvBufApp.ReadPoint1&nbsp;!=&nbsp;CANRcvBufApp.WritePoint1))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Buf=CANRcvBufApp.RcvBuf[CAN1][CANRcvBufApp.ReadPoint1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(++CANRcvBufApp.ReadPoint1&nbsp;&gt=&nbsp;USE_CAN_RCV_BUF_SIZE)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CANRcvBufApp.ReadPoint1&nbsp;=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CANRcvBufApp.FullFlag1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />还请解释解释!<br />
平常人 发表于 2007-7-24 17:07 | 显示全部楼层

F1里这叫套圈,“写”可以套“读”的圈,反之不行

  
 楼主| VIPWEIWEI 发表于 2007-7-25 10:00 | 显示全部楼层

自己的理解

条件1:0&nbsp;!=&nbsp;CANRcvBufApp.FullFlag1使得在写指针追上读指针时,仍然可以读数据。<br />条件2:CANRcvBufApp.ReadPoint1&nbsp;!=&nbsp;CANRcvBufApp.WritePoint1使得读指针总是要在写指针的后面,保证有正确的数据可读。<br />  <br />不知理解对不对,大家评评嘛!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

43

帖子

1

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