加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线15915421161

SIEMENS山西省大同市 西门子代理商——西门子华北一级总代理

更新时间
2024-07-06 07:00:00
价格
请来电询价
西门子总代理
PLC
西门子一级代
驱动
西门子代理商
伺服电机
联系电话
15903418770
联系手机
15915421161
联系人
张经理
立即询价

详细介绍

在单片机与嵌入式开发中,某些场景需要捕获传感器的高电平(或低电平)信号的持续时间,如红外解码信号编码器输入信号等。

如下图,以单一的一段高电平输入信号为例,如何测量这段高电平的时间呢?

从直观上理解,就是要不断的检测这个信号,当信号从0变到1时,记录一个时间,再从1变到0时,记录另一个时间,两个时间差就是高电平的持续时间了。那具体要怎么编程呢?这就要用到定时器了。


2定时器的捕获原理

上篇介绍了定时器的输出功能,本篇是利用定时器的输入功能,来计算脉冲时长。如下图:

  • 定时器的CNT计数器在不停的计数

  • 首先配置定时器的输入通道为上升沿捕获,这样当检测到从0到1的跳变时,CCR1就会先保存当前的CNT值,同时CNT会清零重新开始计数

  • 然后将定时器的输入通道为下降沿捕获,当检测从1到0的跳变时,CCR2就会先保存当前的CNT值

  • 在这期间,CNT的计数值可能会溢出,这不影响,记录下溢出的次数,并重新开始计数即可

  • Zui终,t2-t1的高电平时间,就可以通过N次的溢出时间加CCR2保存的时间来计算获得了


  • 3定时器常用的寄存器

    上篇介绍了定时器输出PWM时用到的几个寄存器(CR、CCMR、CNT、PSC、ARR、CCR等),这里再介绍几个捕获信号时需要用到的几个寄存器:

    3.1 捕获/比较模式寄存器CCMR1

    CCMR寄存器上篇已有介绍,只是上篇仅介绍了输出模式下的功能,本篇再介绍一下它在输入模式下的功能:

    这些通道可用于输入(捕获模式)输出(比较模式)模式。通道方向通过配置相应的 CCxS 位进行定义。此寄存器的所有其它位在输入模式和输出模式下的功能均不同。对于任一给定位

  • OCxx 用于说明通道配置为输出时该位对应的功能

  • ICxx 则用于说明通道配置为输入时 该位对应的功能

  • 因此,必须注意同一个位在输入阶段和输出阶段具有不同的含义。

    这里仅先介绍输入模式下的功能:

  • 位 15:12 IC2F:输入捕获 2 滤波器 (Input capture 2 filter)

  • 位 11:10 IC2PSC[1:0]:输入捕获 2 预分频器 (Input capture 2 prescaler)

  • 位 9:8 CC2S:捕获/比较 2 选择 (Capture/compare 2 selection)用法参照下面的CC1S通道1

  • 位 7:4 IC1F:输入捕获 1 滤波器 (Input capture 1 filter)

    数字滤波器由事件计数器组成,每 N 个事件才视为一个有效边沿:

  • 0000:无滤波器

  • 0001~1111:其它频率的滤波器

  • 位 3:2 IC1PSC:输入捕获 1 预分频器 (Input capture 1 prescaler)

    此位域定义 CC1 输入 (IC1) 的预分频比。只要 CC1E=0(TIMx_CCER 寄存器),预分频器便立即复位。

  • 00:无预分频器,捕获输入上每检测到一个边沿便执行捕获

  • 01~11:每发生 2 (4、8)个事件便执行一次捕获

  • 位 1:0 CC1S:捕获/比较 1 选择 (Capture/Compare 1 selection),此位域定义通道方向(输入/输出)以及所使用的输入。

  • 00:CC1 通道配置为输出

  • 01:CC1 通道配置为输入,IC1 映射到 TI1 上

  • 10:CC1 通道配置为输入,IC1 映射到 TI2 上

  • 11:CC1 通道配置为输入,IC1 映射到 TRC 上。此模式仅在通过 TS 位(TIMx_SMCR 寄存器)选择内部触发输入时有效

  • 注:仅当通道关闭时(TIMx_CCER 中的 CC1E = 0),才可向 CC1S 位写入数据。


    相关产品

    联系方式

    • 电  话:15903418770
    • 联系人:张经理
    • 手  机:15915421161
    • 微  信:15915421161