今天学习的是通用定时器的第三个功能——输入捕获,它的作用是检测到TIMx_CHx的边沿跳变(上升沿或下降沿),即可将当前定时器的存放在捕获/比较寄存器中。
输入捕获滤波器可以通过TIMx_CCMR1的ICF位去控制N个跳变捕获一次,以此达到滤波的作用。TIMx_CCER的CC1P位捕获输出极性,是捕获上升沿或者下降沿。TIMx_CCMR1的CC1S位控制输入还是输出,以及输入脚的选择。TIMx_CCMR1的ICPS位控制输入的分频。TIMx_CCER的CC1E位控制捕获使能。
本次要用输入捕获功能来测量信号的脉冲宽度,用按键作输入,即测量按下的时间。首先配置输入捕获,在第一次上升沿处触发中断,将定时器清零,将STA清零并将bit6置1,然后将模式下降沿触发,当下降沿触发后,将STA的bit7位置1,并将触发模式改为上升沿触发,以等待下一次测量。捕获此时的定时器值,即为脉冲宽度。但这样做并不严谨,因为可能脉冲宽度可能非常长,比定时器的一个技术周期ARR还长,此时读到的值应该等于ARR*溢出次数+当前定时器值。所以还需开启定时器更新中断,记录溢出的次数。
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。