请教布丁橘长,PWM测方波频率
布丁橘长老师,按照你的STC32G的0-100集视频教程配套程序"第092-高级PWM定时器-输入捕获-触发模式-捕获一个周期-上升沿到上升沿-方波频率测量-MAX7219数码管",下载到屠龙刀板,程序运行正常,但是将频率降低到约350HZ以下,频率显示结果就不正常了,难道这个程序不能测低频率,还是我哪里没搞明白?特此请教布丁橘长老师,请解惑!谢谢!原程序的设定:#define PWMB_PSC (12 - 1) // 12分频,时钟周期1us
#define PWMB_PERIOD_500 2000 // 周期2毫秒,500Hz
程序运行数码管显示500hz正常。
如果同样主频和分频情况下,作如下修改:
#define PWMB_PSC (12 - 1) // 12分频,时钟周期1us
#define PWMB_PERIOD_500 4000 // 周期4毫秒,250Hz
数码管显示为0001hz,不正常。经试验,只要PWMB_PERIOD_500的值超过2800就不正常了。不知我哪里没搞对,请老师及其它大佬解惑,谢谢!
捕获脉宽时间=捕捉的时钟数/PWM时钟源, 比如 捕捉的时钟数 = 500, PWM时钟源 = 24MHz(1T), 脉宽 = 500/24MHz = 20.83us.
捕捉的时钟数范围:0~65535
如果需要捕获的脉宽超出时钟数计数范围,就会导致时钟数计数溢出,这种情况可通过PWMA_PSCRH/PWMA_PSCRL寄存器对PWM时钟进行分频
乘风飞扬 发表于 2026-4-2 10:57
捕获脉宽时间=捕捉的时钟数/PWM时钟源, 比如 捕捉的时钟数 = 500, PWM时钟源 = 24MHz(1T), 脉宽 = 500/24MH ...
#define PWMB_PSC (12 - 1) // 12分频,时钟周期1us
#define PWMB_PERIOD_500 4000 // 周期4毫秒,250Hz
这个周期数也没有超过65536啊,是低频哟,是250HZ。 用附件例子试试,PWMB_PERIOD改成4000也能捕获到正确的数值
捕获脉宽时间=捕捉的时钟数/PWM时钟源, 比如 捕捉的时钟数 = 24012, PWM时钟源 = 12MHz, 脉宽 = 24012/12MHz = 2.001ms.
乘风飞扬 发表于 2026-4-3 18:03
用附件例子试试,PWMB_PERIOD改成4000也能捕获到正确的数值
捕获脉宽时间=捕捉的时钟数/PWM时钟源, 比如 捕 ...
乘风**老师,你的程序确实拓展了修改分频和周期的数字范围(布丁老师的程序周期限定得更小,当然肯定是我没有理解程序的意义)。我的理解是:分频值不能超过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赫兹以下的该程序无法测量?如果是我的问题请两位老师和其他大佬指出!)
Tuier 发表于 2026-4-5 10:42
乘风**老师,你的程序确实拓展了修改分频和周期的数字范围(布丁老师的程序周期限定得更小,当然肯定是我没 ...
前面有提过,如果需要捕获的脉宽超出时钟数计数范围,就会导致时钟数计数溢出,这种情况可通过PWMA_PSCRH/PWMA_PSCRL寄存器对PWM时钟进行分频
例子只对产生信号的PWMB进行分频,没有对捕获信号的PWMA进行分频,这样的话,PWMB产生信号频率降低时,PWMA捕获时钟数就可能超过65535而产生溢出。只要将PWMA时钟也进行分频即可。 乘风飞扬 发表于 2026-4-7 10:16
前面有提过,如果需要捕获的脉宽超出时钟数计数范围,就会导致时钟数计数溢出,这种情况可通过PWMA_PSCRH/ ...
谢谢乘风老师,继续加强学习{:woshou:}
页:
[1]