waterx3 发表于 2022-12-19 16:07:17

非整数脉冲频率测量的问题

为了计算频率范围1Hz-1KHz的外部频率,使用PA0的ETR做脉冲计数,每秒读一次计数值可以计算脉冲频率。但是这样计算的脉冲频率都是整数,怎样可以得到精准的频率呢?例如实际频率是12.34Hz这样。

eric2013 发表于 2022-12-19 16:40:10

应该用定时器输入捕获。

waterx3 发表于 2022-12-20 09:30:24

输入捕捉发现准确度受外部频率影响,而且不想频繁中断,另外,这个外部频率也是在不断变化,有逐渐增大,接近稳定(稳定时会有微小变化)再逐渐减少至0的变化过程,时间不确定。能准确到小数点0.1Hz就可以。

eric2013 发表于 2022-12-20 09:48:00

waterx3 发表于 2022-12-20 09:30
输入捕捉发现准确度受外部频率影响,而且不想频繁中断,另外,这个外部频率也是在不断变化,有逐渐增大,接 ...

输入捕获支持DMA,不用频繁中断。

tcs_stm32 发表于 2023-4-4 15:47:59

捕获两次上升沿, 读取系统时钟? DWT计数器精度应该很高的,其次可以systick啊

ldqmcu 发表于 2023-4-6 12:03:16

我个人的观点,要么是处理方法上出错,要么就是你的目标根本就是一个理论方向的错误。首先脉冲的计数,只能按照整数个来计算,不存在能测量出0.3个脉冲的说法(除非你明确知晓被测量的脉冲的时间宽度,然后在边沿触发之后,就开始计时,这样你是可以得到一个大概的零点几个的脉冲)。那么如何才能得到小数的频率值呢?以Hz为单位的时候,那你就不能使用1s为采样计算周期,你要么2秒,2.5秒,XXX秒之类的时间来拿脉冲个数除以时间得到频率值。要么就是缩小采样周期,比如0.3秒采样一次,然后计算。如果你按照1秒来算,你得到的永远只能是整数的频率值。

会飞的猪_2020 发表于 2023-4-7 10:06:41

根据脉宽来判断,才能得到小数吧。
页: [1]
查看完整版本: 非整数脉冲频率测量的问题