前言
前面有关定时器的介绍,大家可以回顾一下,如果有问题还请提出。本期主要围绕输入捕获进行讲解,从更深层次的角度了解定时器的相关作用。
1.定时器通道
2.1通道位置
从图中我们可以看到,通道占了定时器的一大片区域,一般定时器有4个通道。一般我们看图片可能会以为,输入4个通道,输出也是4个通道,其实不是这样的,这里我们记住:一个通道只占用1个引脚。 值得注意的一点是,不管通道是输入捕获,还是输出比较,都会操作一个叫做CCR(1~4)的寄存器,
通道一般用于捕获电平上升沿信号和电平下降沿信号,假设TIM的通道1设置捕获到上升沿,这个时候,计数器的值会被写入CCR1中,并触发一个中断。
2.捕获原理以及流程
1.输入滤波:通道输入的波形进行滤波,以去除毛刺,让信号较为稳定。
2.边沿检测: 一个通道可以检测上升沿和下降沿。
3.信号选择:也就是指定这个通道是检测上升沿还是下降沿。
4.分频:也就是对捕获的上升沿或者下降沿进行分频处理,比如2分频:两个上升沿算做一个上升沿。
5.使能通道
6.触发中断
7.计数器将当前的计数值保存在CCR寄存器中。
2.1步骤拆解:
2.1.1输入滤波:毛刺滤除
仔细看例子,对于1us的毛刺滤除,需要选小于1us的采样次数。这里选择 时钟输入2分频,滤波器参数为0x08,也就是72/2/8 = 4.5MHZ,采样次数为6次。1/4.5MHZ*6 ~=1.3us 也就是大于1.3us就可滤波。这样的话,完全可以去除毛刺。
2.1.2上升沿 下降沿模式选择
注意,通过下面这张图,我们可以观察到,CCR1的模式选择也可以来自CCR2,也就是说CCR1可以间接的捕获到CCR2的上升沿下降沿,同时也可以来自从模式控住器。
2.2流程梳理
当输入信号接到CCR1时,假设CCR1选择上升沿,CCR2间接选择下降沿,这个时候两个通道一旦捕获到上升沿和下降沿,就会产生中断,当产生上升沿时,CCR1记录此时的CNT, 当产生下升沿时,CCR2记录此时的CNT.脉宽就是:CCR2-CCR1
2.3中断原理
3.编程流程
第一步:设置通道参数
第二步:通道使能,也就是打开开关
第三步:设置系统时钟的频率
第四步:获取CCR的寄存器值。