|
定时器还可以用来捕获输入,如高低电平长度的测量。具体的应用,比如测试按键的时长,根据按键时的时长,来实现不同的功能。这是实用的一个功能,当然还有其它的一些应用,比如测量PWM波的周期和占空比。 1 n0 Y4 n- t4 e8 T e3 ~) Y$ P% Q 下面的例程就来讨论一下如何实现PWM波的测量。7 W6 Y+ R' _+ T" e7 }+ K' y3 ?9 }: X5 p! }1 H TIM3生成一个PWM波,输出到CH1,TIM2则用来测量输入PWM波的参数。通过比较结果来进行验证。- d1 R- C0 f; o 下面是TIM3和TIM2的配置代码
PWM波形 ; H9 e. Q, w0 C- _2 C
中断处理函数中对PWM参数进行处理;中断函数代码如下
$ n6 @( X6 S6 ~4 u U& M5 h 测量的结果如下6 V' Q, {$ A1 R- x" ], |7 M6 x3 f
6 o, E5 ^% Q) L 可以看到,测量的结果和设置的值是一致的。 ( P9 X/ I& {) n2 b }0 o 注意,上面的测试中,TIM2和TIM3的PSC是一致的,所以结果那是灰常的准确! 下面,我们稍微调整一下,TIM2的PSC,让TIM2和TIM3的PSC不同,看看结果将会如何?2 R$ \1 V5 {0 v$ c9 U) o % d8 _$ h7 d) P 下面是将TIM2的PSC调整为167后得到的结果,是不是一致呢?呵呵,还是灰常准确!$ g2 L: m) M: B2 e/ C2 a3 P o0 ?" {4 A& \1 n4 f
8 ?9 L0 K. t+ v+ h5 F f 由此也可以看出,两个定时器的工作频率可以不一致,但这并不会影响最终的结果,好了,乱弹完毕! 其实说白了,所谓的PWM输入测量,就是将一路信号,映射到两个通道!( M8 O( P' Z Z( M! I2 K# Y # _+ W0 A' O6 {8 n; U |
微信公众号
手机版
学习了,多谢分享,楼主可否,分享下工程文件(或者程序实例)。。对于新人,有工程文件就可以方便对照学习。。
谢谢分享
,无回帖,不论坛