完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM8如何测多路PWM的频率和脉宽?刚接触这个功能,问问各位。
测频率可以用定时器的输入捕获功能,测出两个上升沿或两个下降沿之间的时间,然后计算出频率。 测脉宽是不是一定要用两个定时器的通道,一个测上升沿,一个测下降沿? 由于总共有四路PWM要测量,如果每个都要用两个通道,那通道不够用,能否只用一个定时器通道,就能实现脉宽的测量?如何测? 补充: 请看RM0016 STM8S技术参考手册V4 第17.5.3中说的, PWM输入信号测量 该模式是输入捕获模式的一个特例,除下列区别外,操作与输入捕获模式相同: ●两个ICi信号被映射至同一个tii输入。 ●这两个ICi信号的有效边沿的极性相反。 ●其中一个TIiFP信号被作为触发输入信号,而触发模式控制器被配置成复位触发模式。 例如,你可以用以下方式测量TI1上输入的PWM信号的周期(TIM1_CCR1寄存器)和占空比(TIM1_CCR2寄存器)。(具体取决于fMASTER的频率和预分频器的值) 1.选择TIM1_CCR1的有效输入:置TIM1_CCMR1寄存器的CC1S=01(选中TI1)。 2.选择TI1FP1的有效极性(用来捕获数据到TIM1_CCR1中和清除计数器):置CC1P=0(上升沿有效)。 3.选择TIM1_CCR2的有效输入:置TIM1_CCMR2寄存器的CC2S=10(选中TI1FP2)。 4.选择TI1FP2的有效极性(捕获数据到TIM1_CCR2):置CC2P=1(下降沿有效)。 5.选择有效的触发输入信号:置TIM1_SMCR寄存器中的TS=101(选择TI1FP1)。 6.配置触发模式控制器为复位触发模式:置TIM1_SMCR中的SMS=100。 7.使能捕获:置TIM1_CCER1寄存器中CC1E=1,CC2E=1。 以这种方式测量PWM时,输入信号接入到TIM1_CH1,但在测量过程中,却用到了TIM1_CCR1和TIM1_CCR2,这样就占用了两个通道,所以需要两个通道来完成一个PWM的测量。 这样定时器TIM1就只能测两个PWM,我需要测四个PWM,通道就不够了。(TIM2,TIM3我另有它用)。 有没另外的方式来实现对PWM占空比的测量? 如果采用RM0016 STM8S技术参考手册V4 第17.5.3中说的PWM输入信号测量的方式,好象STM8只能测一路PWM,因为这种方式使用到TIM1_SMCR中的TS(触发选择),而整个STM8单片机中只有TIM1定时器有这项功能,其它定时器都没有。这种方式是纯硬件测量,软件工作量最少。我试过可以采用TIM1的四个输入通道都设置为单纯的输入捕获方式,然后在中断中改变触发方式,这样通过软件的方式,也能做到测四路PWM,但当PWM频率比较高,或者脉宽比较小的时候,由于中断间隔时间太短,有些中断会丢掉,这样测不出来或测试结果不准确。 |
|
相关推荐
1 个讨论
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
995 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1152 浏览 0 评论
2546 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2330 浏览 3 评论
4977 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-4 17:37 , Processed in 0.428846 second(s), Total 35, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号