双边缘输入捕获
双边沿输入捕获,主要是用于计算方波的占空比的,精度是相对比较高的,主要运用于蓝桥杯比赛中。双边沿顾名思义就是上升沿和下降沿。
通过设置定时器双通道,在初始化配置为上升沿进入中断,然后读取定时器计数值,接着对计数值清零,然后再次开启定时器上升沿输入捕获。但是这样的前提是要滤掉第一个边缘,因为你没法初始就是从上升沿开始计数。滤过第一个之后,后面流程就是:上升沿---> 读取计数值--->计数值清零,重新开启定时器中断。
这样的作用就是,计数值可以通过结合定时器的频率计算出这一方波的频率、周期。
接着另一通道配置下降沿捕获。前提是前面的配置,同一定时器,定时器触发条件是上升沿捕获。然后我们下降沿捕获就是获取当前定时器的计数值。这样对比前面上升沿中断获取的计数值,就可以得到高电平的占空比了。
解析
设置上升沿中断,每次进入后,获取的计数值就是整个波形的频率
设置下降沿输入捕获,每次捕获得到的计数值就是从上升沿到下降沿这段时间的计数值
所以 下降沿计数值 / 上升沿中断计数值 = 方波占空比
注意点!
1.在定时器配置中,自动重装值也就是定时器能计数到最大的值,所以要保证每次捕获的计数值要小于自动重装值! , 细说要结合我前面发过的定时器解析看。
2.波形的频率要在定时器设置的分辨率范围内。也就是时钟的配置,除以预分配系数,就是定时器的识别时钟了
3.精度问题:定时器频率越大,自动重装值越大,精度就越大。因为比如是1秒的计时,分为10000 和 1000 的自动重装值, 10000的精度肯定比1000大 。 因为10000的话精度就是1/10000秒