Search found 2 matches
- Tue Apr 21, 2020 8:06 am
- Forum: ESP-IDF 中文讨论版
- Topic: ESP32 定时器精度不够的问题求助!
- Replies: 1
- Views: 5891
ESP32 定时器精度不够的问题求助!
ESP32定时器精度不准?经测试使用auto_loader模式,定时中断每周期会比实际预定时间长 125ns 左右。请问是什么原因? 测试流程如下: TIMER_GROUP_0 timer0 设置为 TIMER_COUNT_UP,autoreload 2分频 模式,定时50ms中断使能; TIMER_GROUP_0 timer1 设置为 TIMER_COUNT_UP,2分频 自由计数; 每次 timer0 中断时读取timer1的定时器计数,并通过线程打印出来。可以看到,每个定时周期都会比设定的时间(50ms)多 125ns! 并且加入Timer0定时周期变化,比如设置500ms,每个定时周期...
- Tue Apr 21, 2020 4:20 am
- Forum: ESP-IDF 中文讨论版
- Topic: ESP32 定时器 Reload 的 BUG?
- Replies: 0
- Views: 3714
ESP32 定时器 Reload 的 BUG?
ESP-IDF 的定时期设置 TIMER_AUTORELOAD_EN 后,原则上定时中断产生时应该自动 reload 到 0重新计时。
但实际测试发现(查阅Timer例程也可看到)在定时器中断发生时貌似定时器自动停止了,必须手动再次启动。。。这会导致每个定时周期总会偏差一点点(因为在中断中重新开始定时器需要一点时间),现在无法满足我需要极为精准的定时周期了。。求教如何才能正确使用Reload机制?
下面是 IDF-SDK 中 Timer 的例程,疑问在于为什么每次定时器中断时需要重新设置开启中断以及重新设置alarm value?
但实际测试发现(查阅Timer例程也可看到)在定时器中断发生时貌似定时器自动停止了,必须手动再次启动。。。这会导致每个定时周期总会偏差一点点(因为在中断中重新开始定时器需要一点时间),现在无法满足我需要极为精准的定时周期了。。求教如何才能正确使用Reload机制?
下面是 IDF-SDK 中 Timer 的例程,疑问在于为什么每次定时器中断时需要重新设置开启中断以及重新设置alarm value?