恭喜,你发布的帖子
发布于 2018-02-05 22:53:53
15楼
或者这样说:CPU内部有个公用的1毫秒分辨率的计时器,100毫秒级定时器是每次执行定时指令时去读他,有N*100+n毫秒增量当前值就加N(N>=0,100>n>1),但n不丢弃转入下一次增量计算。1毫秒级定时器则是定时启动后每隔1毫秒就会去读那个公用的计时器并实时刷新当前值和位。10毫秒级定时器是每次扫描开始时去读他,有N*10+n毫秒增量当前值就加N(N>=0,10>n>1),但n不丢弃转入下一次增量计算。
100ms定时器是否每个定时器自己计算时间增量,这个还需要进一步用实例来证实。
我一直以为,100ms的定时器,虽然是定时器指令执行(指TON/TOF/TONR)时更新,但更新所用的定时器增量值,则统一使用在扫描周期开始时的公共计算值。
这一现象的程序证实方法:
1、如果在每个扫描周期中对100ms执行两次TON指令,定时时间值就会快1倍(200%),说明它使用的增量不是私有的。
2、如果是间隔一个扫描周期执行一次TON指令,定时时间会慢1倍(50%),扫描周期只有几个ms也是这个现象,间隔一个扫描周期应不会错过一个100ms的事件,间接说明它的增量是公共的。
请填写推广理由:
分享
只看
楼主