硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1171|回复: 6
收起左侧

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

[复制链接]

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2022-12-19 16:07:17 | 显示全部楼层 |阅读模式
为了计算频率范围1Hz-1KHz的外部频率,使用PA0的ETR做脉冲计数,每秒读一次计数值可以计算脉冲频率。但是这样计算的脉冲频率都是整数,怎样可以得到精准的频率呢?例如实际频率是12.34Hz这样。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-12-19 16:40:10 | 显示全部楼层
应该用定时器输入捕获。

回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
 楼主| 发表于 2022-12-20 09:30:24 | 显示全部楼层
输入捕捉发现准确度受外部频率影响,而且不想频繁中断,另外,这个外部频率也是在不断变化,有逐渐增大,接近稳定(稳定时会有微小变化)再逐渐减少至0的变化过程,时间不确定。能准确到小数点0.1Hz就可以。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

8

主题

135

回帖

159

积分

初级会员

积分
159
发表于 2023-4-4 15:47:59 | 显示全部楼层
捕获两次上升沿, 读取系统时钟? DWT计数器精度应该很高的,其次可以systick啊
回复

使用道具 举报

3

主题

34

回帖

43

积分

新手上路

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

使用道具 举报

38

主题

194

回帖

318

积分

高级会员

积分
318
发表于 2023-4-7 10:06:41 | 显示全部楼层
根据脉宽来判断,才能得到小数吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 04:35 , Processed in 0.219513 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表