jianhong_wu 发表于 2016-4-3 12:56:30

累计定时器的中断次数的时间不准怎么办?如何调整?已解答。

城堡-北京:
咨询大家一个问题 我现在按照鸿哥的程序框架把键盘扫描函0数放到了定时钟端中
现在发现定时60秒实际执行下来是70秒,大家有好的办法解决这个吗?感觉有误差但也不能查这么多啊。

★坚鸿-深圳:
调一下定时中断次数。

城堡-北京:
我现在的中断次数是秒1000次,
60s定时出来是65秒多。


★坚鸿-深圳:
那你再调节一下定时器的重装值,或者调小一点定时中断次数。就这两种办法。
调整定时中断次数时:比如你想确定1秒钟到底要多少次中断才是合理,按照你刚才的实验情况,乘以一个比例系数就可以,
这个比例系数60/65。所以1秒的实际次数:1000乘以60,然后再除以65,等于923次。


城堡-北京:
我的定时器初值是用公式计算的。

★坚鸿-深圳:
初值即使根据计算公式,也要根据实际时间修正一下,实际跟理论有差距这个不矛盾,修正一下初值就好,何必老纠结这个问题。

城堡-北京:
我现在在做一个心率测试的项目,为了计算准确的心率,所以才纠结呢。

★坚鸿-深圳:
以实际时间为准,做些必要的初值修正。

威-广州:
这个和晶振有关。中断频繁了就导致时间存在误差,比如你刚说的1ms中断一次,假设中断响应了之后,就得跑到中断里头做任务,成倍数关系后有可能会导致误差变大呢。我认为解决的方法有两种,第一,中断不要太频繁,反正你是计时的,并且中断里头少做事为妙。第二,像刚鸿哥所说的初值修正,比如理论算出来的初值是10000,根据刚才所说的,中断会损耗时间,你可以叠加一个定值在初始化里头。

★坚鸿-深圳:
说个题外话,比如我以前觉得定时中断的初值无所谓,大概就好。现在我觉得很重要,要明确是1ms,还是2ms,4ms,5ms的中断间隔,这个我现在认为很重要,在新帖里我以后会更改以往的说法。

页: [1]
查看完整版本: 累计定时器的中断次数的时间不准怎么办?如何调整?已解答。