- 打卡等级:以坛为家III
- 打卡总天数:738
- 最近打卡:2026-07-03 10:10:54
金牌会员
- 积分
- 1536
|
发表于 2026-4-5 10:42:07
|
显示全部楼层
乘风**老师,你的程序确实拓展了修改分频和周期的数字范围(布丁老师的程序周期限定得更小,当然肯定是我没有理解程序的意义)。我的理解是:分频值不能超过65536,周期值不能超过65536,对吧?因此,理论上我可以:#define PWMB_PSC (12 - 1) // 12分频,时钟周期1us
#define PWMB_PERIOD 65000 // 周期65毫秒,15.38Hz
可是打印出来的值不对。经试验,分频系数和周期值是关联的,它们两个的乘积不能超过65536!即PSC*PERIOD<65536,这个非常好理解了。但是布丁老师的程序在同样12分频的情况下,周期值只能小于2800,而乘风老师的在12分频的情况下,周期值可以扩大到5400(5400*12<65536)。还有同样的这个程序无论你这么改分频系数和周期值,在示波器上都能正确读取频率值,可以准确显示1hz。也就是说,同样的程序示波器可以正确显示1hz的频率和周期值,万用表频率档也能测出,而用数码管和printf输出就不行呢?下图是用乘风老师程序周期值在5500下的printf输出。是不是程序哪个地方能优化一下,让数码管和printf输出也能显示低到1HZ的频率检测。(难道这种数码管和printf的PWM测频率是因为计数限制只能测到200HZ以上的?200赫兹以下的该程序无法测量?如果是我的问题请两位老师和其他大佬指出!)
|
|