恭喜,你发布的帖子
发布于 2023-03-03 02:36:26
57楼
昨天又测试了定时器,得出几个结论:
比较的对象有这么几个:
1、利用BITime/CITime取得系统心跳次数来定时。
2、利用10ms定时器T33计数周期100ms(计数10次复位)产生1s脉冲,然后计数1s脉冲定时。
3、利用10ms定时器T34计数周期5s(计数30000次复位),累积5s的次数和T34当前值来定时。
4、利用10ms定时器T35计数周期100ms(计数10次复位),累积100ms的次数来定时。
设计一个负荷子程序,循环多次模拟负荷运行时间,这个负荷每隔200ms执行一次。200ms利用定时中断触发。
实验结果是:当负荷时间比较大,超过定时器2、4的计数周期100ms时定时器2、4变慢。当负荷时间小于2、4的计数周期100ms时(几个ms)定时器1、2、3、4定时一致。
无论怎样模拟负荷,定时器1、3都是一致的。由于不能模拟负荷周期超过500ms,所以定时器3在此种平台上可以认为是可靠的。
结论:利用脉冲周期计数来定时的准确性和程序扫描时间关系很大,要想有个可靠的定时最好程序扫描周期远小于计数周期。而利用BITime/CITime定时是可靠的,误差只和一个扫描周期有关,其他都有累积误差。
不把测试程序放出来,得出的结论没有说服力。
就像最初的怀疑一样
请填写推广理由:
分享
只看
楼主