quote:以下是引用yanxiao在2012-12-06 13:48:12的发言:实验1:1ms和 10ms分辨率定时的自动更新。
程序RUN后,第一个扫描周期时调用子程序,开启T32(1ms)、T33(10ms)、T37(100ms)三个定时器,预设时间都为10s。之后程序运行时,不再对定时器进行任何操作。用状态表监控视定时器运行情况,1ms、10ms定时器可以自行跑,100ms的定时器则停着不动。至10s时,1ms和10ms的定时器状态位自动置1。
1ms定时器每1ms更新一次、10ms定时器在每周期更新一次,100ms则在执行到相应的定时器指令时才更新,与手册描述相符。自动更新时,包括了定时值以及状态位。
点击此处查看附件
100ms定时器不仅是在执行到相应的定时器指令时才更新,而且每次以当前周期(耗时)来更新,如果你把更新的机会给限制了,未更新的周期所耗时间会被它忽略掉!这也是相同的定时器代号在主程序里两次调用计数值会翻倍的原因。
点击此处查看附件