《ESP32_技术参考手册_v5.2 》
在使用余弦波形生成器(cw)的过程中,发现一个bug需要补充文档内容才能解决。使用案例如下:
1. 初始化余弦发生器,并开始正常产生波形。(设置 FSTEP 的初始值为 150)
2. 在运行的过程中,修改波形(将 FSTEP 值改为 70)
这个时候,余弦的输出值是连续的,但时序有可能不对。因为 cw 的计数器,如果在修改 FSTEP 之前,已经 > 70 了,那么下一次的波形调整,就必须等 cw 计数器溢出后,才能重新从0开始计算,这时候产生的波形,时序上就会出问题。(可参考附件)
解决的方案可以是修改 FSTEP 后,立刻读取计数器值。如果 计数器值 > 新 FSTEP 值,那么cw计数器就得设置成新 FSTEP - 1,避免等待计数器溢出后,再从零到 FSTEP 的情况发生。
但翻遍了文档,都没有找到读写cw计数器的地方。请补充读写cw计数器的相关内容,或者如果cw计数器并不对外开放,也请注明。(如果不开放的话,cw寄存器的部份使用场景就存在一个隐藏很深的bug,当需要动态调整频率的时候,就会出问题。)
ESP32_技术参考手册_5.2 缺失关于读写cw的计数器的内容
ESP32_技术参考手册_5.2 缺失关于读写cw的计数器的内容
- Attachments
-
- 计数器溢出bug.png (28.33 KiB) Viewed 1193 times
Who is online
Users browsing this forum: No registered users and 3 guests