首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >定时器的输入捕获通道(Input Capture Channel)

定时器的输入捕获通道(Input Capture Channel)

作者头像
云深无际
发布2025-02-05 14:54:11
发布2025-02-05 14:54:11
2860
举报
文章被收录于专栏:云深之无迹云深之无迹

输入捕获(Input Capture,IC)是定时器的一种模式,它允许 MCU 精确记录外部信号发生变化的时间(通常是上升沿或下降沿)。

输入捕获通道(Input Capture Channel)与定时器配合,在检测到输入信号的边沿时,将当前定时器的计数值保存到寄存器中。

  1. 测量脉冲宽度(如 PWM 信号的占空比测量)。
  2. 测速(测量编码器、转速传感器的信号频率)。
  3. 外部事件时间测量(如超声波测距、通信协议的时间同步)。

测量时间是定时器永恒的话题。

输入捕获模式通常与定时器配合工作,定时器不断计数,而当输入信号的边沿变化时,定时器的当前值会被保存到输入捕获寄存器(ICR)中。

定时器运行,计数器 CNT 以设定的时钟递增。

外部信号(PWM、方波、传感器信号等)输入到定时器的输入捕获通道(TIMx_CHx)。

当输入信号的指定边沿(上升沿/下降沿)被检测到:MCU 立即将当前定时器 CNT 计数值保存到 ICR(输入捕获寄存器)。

产生一个输入捕获事件(Capture Event),可以触发中断或 DMA 传输。应用程序读取捕获寄存器的值,计算信号的频率或脉冲宽度。

三种触发模式:

  1. 上升沿捕获(Rising Edge):当输入信号从 低 变为 高 时触发捕获。
  2. 下降沿捕获(Falling Edge):当输入信号从 高 变为 低 时触发捕获。
  3. 双边沿捕获(Both Edges):检测 上升沿和下降沿,适用于脉冲宽度测量。

简单来说就是这个事件发生,记录一下时间,一做差就有了。

这是一些寄存器,不做具体的指定,大概就是有这些功能

使用输入捕获通道测量 PWM 信号的周期,从而计算频率。

设 T1 为检测到第一个上升沿时的 CNT 值,T2 为下一个上升沿的 CNT 值。

  • PWM 信号周期 T = T2 - T1。
  • 频率 f = 1 / T(单位:Hz)。

1微S一次,回调函数里面计数

  1. 第一次检测到 PWM 上升沿时,存储 CNT 值(IC_Val1)。
  2. 第二次检测到上升沿时,计算 Difference = IC_Val2 - IC_Val1。
  3. 计算 PWM 频率 Frequency = 1,000,000 / Difference(单位 Hz)。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档