非整数脉冲频率测量的问题
为了计算频率范围1Hz-1KHz的外部频率,使用PA0的ETR做脉冲计数,每秒读一次计数值可以计算脉冲频率。但是这样计算的脉冲频率都是整数,怎样可以得到精准的频率呢?例如实际频率是12.34Hz这样。应该用定时器输入捕获。
输入捕捉发现准确度受外部频率影响,而且不想频繁中断,另外,这个外部频率也是在不断变化,有逐渐增大,接近稳定(稳定时会有微小变化)再逐渐减少至0的变化过程,时间不确定。能准确到小数点0.1Hz就可以。
waterx3 发表于 2022-12-20 09:30
输入捕捉发现准确度受外部频率影响,而且不想频繁中断,另外,这个外部频率也是在不断变化,有逐渐增大,接 ...
输入捕获支持DMA,不用频繁中断。 捕获两次上升沿, 读取系统时钟? DWT计数器精度应该很高的,其次可以systick啊 我个人的观点,要么是处理方法上出错,要么就是你的目标根本就是一个理论方向的错误。首先脉冲的计数,只能按照整数个来计算,不存在能测量出0.3个脉冲的说法(除非你明确知晓被测量的脉冲的时间宽度,然后在边沿触发之后,就开始计时,这样你是可以得到一个大概的零点几个的脉冲)。那么如何才能得到小数的频率值呢?以Hz为单位的时候,那你就不能使用1s为采样计算周期,你要么2秒,2.5秒,XXX秒之类的时间来拿脉冲个数除以时间得到频率值。要么就是缩小采样周期,比如0.3秒采样一次,然后计算。如果你按照1秒来算,你得到的永远只能是整数的频率值。 根据脉宽来判断,才能得到小数吧。
页:
[1]