我正在开发一些需要及时同步的节点。节点必须处于休眠状态以节省电力。我使用内核定时器来唤醒,所以我在唤醒周期中使用系统棒来克服低于10ms的时间,因为app_timer_set接受时间乘以10ms。我在一篇文章中读到,内核计时器的精度是-20ms到0,这让我很困惑。有人能再解释一下准确度吗?当内部RCX20时钟用于睡眠时,准确性会受到影响吗?定时器的准确性是相当重要的我的应用程序。我希望计时器在10*n毫秒内准确醒来。谢谢
嗨toughworld,
定时器的准确度为10ms,内核定时器的不准确度可以在两种情况下观察到:
-当计时器是由异步事件设置(按钮等)超时时间是t,计时器的过期时间可以发生在t-10ms到t之间。
当另一个计时器在这个时间点过期时,一个计时器可以提前一个时间点过期(10ms),这意味着假设你有两个计时器,一个在40ms过期,另一个在110 ms过期。当时间在前两个序列中流逝时,计时器40ms将正常过期,但当第二个计时器的时间流逝时,第一个计时器也将在30 ms中流逝。
由于MT_dialog
我知道了,非常感谢。还有一个问题,使用外部的XTAL32振荡器,而不是内部的RCX20时钟有助于提高由晶体精度引起的内核定时器精度吗?例如,当da运行时间较长时,倍数da14580可能会因晶体精度而损失syc。
不,即使使用外部XTAL32,也无法提高内核计时器的准确性。
嗨toughworld,
定时器的准确度为10ms,内核定时器的不准确度可以在两种情况下观察到:
-当计时器是由异步事件设置(按钮等)超时时间是t,计时器的过期时间可以发生在t-10ms到t之间。
当另一个计时器在这个时间点过期时,一个计时器可以提前一个时间点过期(10ms),这意味着假设你有两个计时器,一个在40ms过期,另一个在110 ms过期。当时间在前两个序列中流逝时,计时器40ms将正常过期,但当第二个计时器的时间流逝时,第一个计时器也将在30 ms中流逝。
由于MT_dialog
我知道了,非常感谢。
还有一个问题,使用外部的XTAL32振荡器,而不是内部的RCX20时钟有助于提高由晶体精度引起的内核定时器精度吗?例如,当da运行时间较长时,倍数da14580可能会因晶体精度而损失syc。
嗨toughworld,
不,即使使用外部XTAL32,也无法提高内核计时器的准确性。
由于MT_dialog