恭喜,你发布的帖子
发布于 2016-06-08 07:11:33
5楼
这个例子用了T37,是一个100ms的定时器,T37==10的条件不容易错过。
但如果是一个10ms的定时器或1ms的定时器,这样的“==”条件有可能会遇不到。WHY?
是不是手册上写的以下原因:
分辨率对定时器的影响
对于1 ms分辨率的定时器来说,定时器位和当前值的更新不与扫描周期同步。对于大于1 ms的程序扫描周期,定时器位和当前值在一次扫描内刷新多次。
对于10 ms分辨率的定时器来说,定时器位和当前值在每个程序扫描周期的开始刷新。定时器位和当前值在整个扫描周期过程中为常数。在每个扫描周期的开始会将一个扫描累计的时间间隔加到定时器当前值上。
对于分辨率为100 ms的定时器,在执行指令时对定时器位和当前值进行更新;因此,确保在每个扫描周期内,程序仅为100毫秒的定时器执行一次指令,以便使定时器保持正确计时。
所以如果是但如果是一个10ms的定时器或1ms的定时器,这样的“==”条件有可能会遇不到。应该用“》=”。是不是这样,请斑竹指点。
请填写推广理由:
分享
只看
楼主