完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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,每个定时周期多出的时间将会变成50ns!居然是浮动的! 定时器在中断后autoreload 为什么会损失时间呢? 期望定时器周期精准。 下面是测试过程的打印信息: 可见每次Timer0中断周期都大于 50ms,并且中间会有高达 4us 的时间波动(可能是CPU进入临界区关闭中断导致?) Timer0 isr. timer1 time stamp = 13000036800 ns(13.00003680 s) Timer0 isr. timer1 time stamp = 13050032875 ns(13.05003287 s) Timer0 isr. timer1 time stamp = 13100032950 ns(13.10003295 s) Timer0 isr. timer1 time stamp = 13150037025 ns(13.15003702 s) Timer0 isr. timer1 time stamp = 13200033100 ns(13.20003310 s) Timer0 isr. timer1 time stamp = 13250041200 ns(13.25004120 s) Timer0 isr. timer1 time stamp = 13300033225 ns(13.30003322 s) Timer0 isr. timer1 time stamp = 13350037300 ns(13.35003730 s) Timer0 isr. timer1 time stamp = 13400033375 ns(13.40003337 s) Timer0 isr. timer1 time stamp = 13450037450 ns(13.45003745 s) |
|
相关推荐
1个回答
|
|
ESP32定时器精度不准的原因可能有以下几点:
1. **硬件问题**:硬件的质量和性能可能影响定时器的精度。例如,晶振的稳定性和精度可能会影响定时器的性能。 2. **软件实现问题**:ESP32的定时器实现可能存在一些软件层面的问题,导致定时器精度受到影响。例如,中断处理的延迟、线程调度的延迟等。 3. **中断优先级**:如果中断优先级设置不当,可能会导致定时器中断被其他中断抢占,从而影响定时器的精度。 4. **系统负载**:如果系统负载较高,可能会导致定时器中断处理的延迟,从而影响定时器的精度。 5. **定时器配置问题**:定时器的配置可能存在问题,例如分频设置、计数模式等,可能会导致定时器精度受到影响。 针对您的问题,我建议您尝试以下方法来排查和解决问题: 1. **检查硬件**:确保您的ESP32硬件质量良好,晶振稳定。 2. **优化软件实现**:检查您的代码,确保中断处理和线程调度没有延迟。 3. **调整中断优先级**:确保定时器中断的优先级设置正确,避免被其他中断抢占。 4. **降低系统负载**:尽量减少系统负载,避免影响定时器中断的处理。 5. **重新配置定时器**:检查您的定时器配置,确保分频设置、计数模式等设置正确。 6. **更新固件**:检查是否有适用于您的ESP32的固件更新,更新固件可能会修复一些已知的问题。 7. **使用其他定时器**:如果问题仍然存在,您可以尝试使用其他定时器,例如ESP32的硬件定时器,看看是否能够获得更好的精度。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
142 浏览 1 评论
550浏览 6评论
460浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
441浏览 5评论
444浏览 4评论
415浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 19:39 , Processed in 0.790929 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号