打印
[MM32生态]

MM32 如何使用定时器做脉冲计数

[复制链接]
1758|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、应用简介
在实际应用的一些产品上可能需要到对脉冲的个数进行计数,本章我们来讲一下如何使用tiM来做一个脉冲计数的功能。在MM32 TIM中正好有一个外部时钟模式1可以来帮助我们实现这个功能。
二、外部时钟源模式1描述
首先我们来了解一下外部时钟源模式1,当 TIMx_SMCR 寄存器的SMS = 111 时,此模式被选中。计数器可以在选定输入端的每个上升沿或下降沿计数。下图是TI2外部时钟连接例子。

例如,要配置向上计数器在 T12 输入端的上升沿计数,使用下列步骤:
1. 配置 TIMx_CCMR1 寄存器 CC2S = 01,配置通道 2 检测 TI2 输入的上升沿。
2. 配置 TIMx_CCMR1 寄存器的 IC2F[3: 0],选择输入滤波器带宽(如果不需要滤波器,保持 IC2F= 0000)。
3. 配置 TIMx_CCER 寄存器的 CC2P = 0,选定上升沿极性。
4. 配置 TIMx_SMCR 寄存器的 SMS = 111,选择定时器外部时钟模式 1。
5. 配置 TIMx_SMCR 寄存器中的 TS = 110,选定 TI2 作为触发输入源。
6. 设置 TIMx_CR1 寄存器的 CEN = 1,启动计数器。
注:捕获预分频器不用作触发,所以不需要对它进行配置。
当上升沿出现在 TI2,计数器计数一次,且 TIF 标志被设置。
在 TI2 的上升沿和计数器实际时钟之间的延时取决于TI2 输入端的重新同步电路
外部时钟模式1下的控制电路

三、定时器代码配置
   
四、实验结果
实验信号发生器从PA1输入1HZ的方波,进入KEIL的调试模式观察TIM->CNT的变化,TIM的计数器以每秒加1的速度向上计数,停止输入方波,计数器停止计数。说明我们实现了使用TIM进行计数的功能






使用特权

评论回复
沙发
yangjiaxu| | 2021-5-23 18:07 | 只看该作者
讲的很不错 支持一波

使用特权

评论回复
板凳
734774645| | 2021-5-27 15:50 | 只看该作者
定时器一般具备计数模式,可以用这个模式进行计数测量脉冲数量。

使用特权

评论回复
地板
自动化陈稳| | 2021-5-29 19:11 | 只看该作者
实现了使用TIM进行计数的功能

使用特权

评论回复
5
skyred| | 2021-6-16 13:10 | 只看该作者
不是所有的定时器都能计数的么?

使用特权

评论回复
6
呐咯密密| | 2021-6-16 13:17 | 只看该作者
要加一个溢出中断,在达到计数的数量后可以进行一些操作,只计数没啥用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1213

主题

5348

帖子

12

粉丝