你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何利用timer对一个频率变化范围比较广的中低频脉冲信号进行精确脉冲长度/周期/频率测定

[复制链接]
Zona 提问时间:2024-5-16 16:04 / 已解决

各位好,

如题,一个变周期脉冲信号A,周期从数秒(甚至数十秒)到不到1ms变化(几十k),希望能测量该信号的精确脉冲长度/周期/频率

我原来想法是通过timer对sysclk进行计数,然后A来触发计数值保存(呃,不知道这个叫哪个模式),后来发现不行,16bit的计数,计数频率低了吧,信号周期短的时候不行,误差太大,计数频率高了吧,周期数秒就溢出了。。。

想来想去都没有办法做的结果值的绝对误差相同

有点头疼不知道怎么做才好,请教大家指点,先谢谢

收藏 评论6 发布时间:2024-5-16 16:04

举报

6个回答
xmshao 最优答案 回答时间:2024-5-16 16:43:20
回答时间:2024-5-16 16:24:03
你现在就是想利用TIMER测量一个周期变化比较宽的脉冲频率或占空比对吧。


使用TIMER的捕获功能,并统计测量TIMER的溢出事件,不难实现的。


你可以基于单个捕获通道来测量,也可以基于两个捕获通道的PWM输入模式
来测量。


这里有篇公众号文章可以参考下《基于定时器捕获测量脉宽的应用示例》。
回答时间:2024-5-16 16:34:27
如果需要的话,你可以尝试留言看看是否有现存的源代码。
Zona 回答时间:2024-5-17 12:11:05

a

游客 39.105.171.x 发表于 2024-5-16 16:24
你现在就是想利用TIMER测量一个周期变化比较宽的脉冲频率或占空比对吧。</p>
<p>

对,是这样

啊,我思路固化了,只想到溢出会导致值归零,没想到溢出次数也能记录。。。

就是利用溢出中断记录一下溢出次数是吧

我去试试,谢谢指点。

Zona 回答时间:2024-5-17 16:00:34

游客 39.105.171.x 发表于 2024-5-16 16:24
你现在就是想利用TIMER测量一个周期变化比较宽的脉冲频率或占空比对吧。</p>
<p>

,呃,请教一下,timer在捕获状态时,发生溢出,也会有溢出中断触发吗?

xmshao 回答时间:2024-5-29 15:11:25

Zona 发表于 2024-5-17 16:00
,呃,请教一下,timer在捕获状态时,发生溢出,也会有溢出中断触发吗?
...

只要你开启了因溢出导致中断,不论什么时候发生溢出都可以产生中断。跟你是否做捕获无关。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版