测PWM信号的捕获, 就需要捕获两个边沿的时刻, 就可以得到周期和占空比了.
一个输入脚捕获2个边沿当然也是可以实现的, 软件就比较麻烦. STM 提供了一路信号给两个通道的手段.
选择输入极性: CCER1-> CC1P:输入/捕获1输出极性
CC1通道配置为输入或者捕获
0:捕获发生在TI1F或TI2F的上升沿;
1:捕获发生在TI1F或TI2F的下降沿.
选择输入通道: CCMR1 ->CC1S:捕获/比较1选择。
01:CC1通道被配置为输入,IC1映射在TI1FP1上;
10:CC1通道被配置为输入,IC1映射在TI2FP1上;
注意:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=0)才是可写的。
这样 CCR1 和 CCR2 就可以获得分别获得两个边沿的时刻, 结合上次的时刻计算出周期和占空比就很容易了.
此外, 如果通过主从模式, 让上升沿触发 TRGO, 让定时器重新从0开始计数, 那就不再要去减上次时刻的数值, CCR1 和 CCR2 就是周期和高电平时间. 不过 STM8 好象只能连接到别的 TIM.
原理不算复杂, 寄存器操作也不麻烦. 当然也可以参考一下例程.
|