如何利用外部中断和定时器测量信号频率
【如何利用外部中断和定时器测量信号频率】
摘要:利用定时器产生PWM波 。然后利用32的外部中断和定时器来测量32输出的波形硬件:STM32F103C8T6核心板、示波器、串口调试助手所用到的的引脚为PA8和PA0 。测量方案:在第一次外部中断(上升沿触发)到之时,开启定时器,同时计数器清零 。
然后等待第二次中断到来,在第二次外部中断(上升沿触发)到之时,获取计数器的计数值,同时关闭计数器 。因为知道了计数器计数一个数的时间,所以在第二次外部中断(上升沿触发)到之时,获取计数器的计数值,通过这个值就知道一个脉冲的时间周期 。时间周期的倒数就是外部信号的频率 。
一、利用TIM1的CH1产生PWM波
pwm.c
文章插图
pwm.h
文章插图
main.c
文章插图
定时器1的通道1对应的是PA8引脚,连接示波器可以测出波形
文章插图
二、将PA8与PA0相连接
这里利用PA8输出的PWM波形让PA0外部中断引脚测量 。
文章插图
三、外部中断和定时器测量频率
在配置定时器时最重要的就是配置定时器的预分频系数和重装载值 。定时器的本质就是一个计数器,计数到我们设定的值后就会溢出,也就是重新从0开始开始计数 。设置预分频系数就是设置计数器的频率,假设为71,F1的系统时钟为72M,经过72分频,给计数器的时钟频率就是1M,周期就是1/1M=1us 。也是就1us计一个数 。那么计几个数呢?这就要看重装载值ARR,这里我们设置为0XFFFF,也就是计数65536个数,就是计满整个寄存器的值 。为什么要分频系数为72,重装载值为0XFFFF?这里给出详细的分析过程 。
1 为什么要分频系数为72 F1的系统时钟为72M,F1的系统时钟为72M,如果不分频的话,提供给定时器的时钟就直接是72MHZ 。72MHz是个什么概念?72MHz它对应的周期就是(1/72000000)秒,也就是计数器从0计数到最大值65535,只需要花费(65535/72000000)秒≈1ms 。
这句话的意思就是如果你不分频,计数器最大只能定时1ms 。那么你的定时器每隔1ms就会溢出一次 。如果经过72分频,给计数器的时钟频率就是1M,周期就是1/1M=1us,也是就1us计一个数 。换句话就是可以采样的波形频率为1M,提高了采样频率 。另一方面也是容易计算,计一个数1us,计count个数就是count个us,频率就是1000000/count(HZ) 。
2 为什么要重装载值为0XFFFF 最大采样间隔是跟定时器的中断间隔相关的,定时器产生溢出中断后计数值CNT会自动清0,定时器的中断间隔由分频系数Prescaler和自动重装载寄存器Period决定,分频系数前面已经确定,那最大采样间隔只需要考虑自动重装载寄存器Period的设置 。
比如频分析系数71,自动重装寄存器值65535,则中断间隔=65536/72000000/72=65.536ms,即最大采样间隔65.536ms,如果65.536ms内没有检测到一个脉冲,则这么设定间隔是不合理的,必须想办法牺牲最小的采样时间1us(扩大分频系数)或者扩大自动重装寄存器值(16位<65535)来增加定时器中断间隔,也可以编写自己的应用函数来计算溢出的定时时间 。
一般来说我们使用外部中断是不需要用到定时器的,看原子和野火的外部中断实验也没有用到外部中断 。但是现在不是利用外部中断简单的处理一件事,而是利用外部中断测量频率,而测频率就涉及到时间,而只要涉及到时间,就需要用到定时器了 。测量外部信号的频率,就是测量PWM波对吧!
如果我们测量到一个周期的时间,那么不就知道了信号的频率了吗?测量方案:在第一次外部中断(上升沿触发)到之时,开启定时器,同时计数器清零 。然后等待第二次中断到来,在第二次外部中断(上升沿触发)到之时,获取计数器的计数值,关闭计数器 。因为我们知道了计数器计数一个数的时间,所以我们到在第二次外部中断(上升沿触发)到之时,获取计数器的计数值,通过这个值就知道一个脉冲的时间周期 。时间周期的倒数就是外部信号的频率 。
具体代码如下:
文章插图
当然你可能觉得这只是测量信号的一个周期脉冲不够准确,那么也可以测量100次脉冲的时间再除以100,就是一个脉冲的时间,然后再取倒数就可以算出频率,这种方法也是可以的 。具体代码如下:
文章插图
程序流程图
文章插图
串口打印结果
文章插图
当然测量信号频率的方法可以直接利用TIM的输入捕获的方法就可以实现 。用外部中断只是另一种测量方案,具体用哪一种还要看具体情况 。
责任编辑:xj
原文标题:利用外部中断和定时器测量信号频率
文章出处:【微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处 。
.dfma {position: relative;width: 1000px;margin: 0 auto;}.dfma a::after {position: absolute;left: 0;bottom: 0;width: 30px;line-height: 1.4;text-align: center;background-color: rgba(0, 0, 0, .5);color: #fff;font-size: 12px;content: "广告";}.dfma img {display: block;}
文章插图
推荐阅读
- 台风天气如何养殖草鱼
- 三文鱼如何保存,三文鱼可以冷冻保存吗
- 如何找出偷窥器材_来学学怎样把针孔摄像头都揪出来
- 羊肉饺子馅的正宗做法?饺子馆老板是如何包饺子的?
- 如何才能承包小区物业?承包物业要投资多少钱的本钱?
- 多宝鱼怎么杀,多宝鱼如何洗干净
- 中国可以安乐死吗?西班牙通过该法规!如何安静的睡死过去?
- 白姑鱼和黄花鱼的区别是什么,如何识白姑鱼和黄花鱼
- 植树节需要我们做什么?如何开展植树节活动!
- 为什么有人不喜欢贾玲_贾玲在娱乐圈的人缘如何