求问如何能做出这样的PWM波形,试了好多方法。

2019-10-14 21:58发布

用PWM比较输出模式的话,虽然可以调相位差,但是,占空比却不能调。
如果用PWM输出模式的话,可以调占空比,但是相位差却不能调。
请问各位大神,这四路波形要怎么调出来啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
26条回答
K.O.Carnivist
2019-10-16 23:50
vention 发表于 2016-10-8 09:45
我把你的程序复制烧录在F103的开发板上,试过了,可行,可是有很多地方看不懂。比如,定时器2 TIM2是用来 ...

TIM1的作用是:启动之后会计数更新6个周期,然后自己停止计数。这6个周期期间会按顺序输出4个脉冲,但输出完后就停止了不会输出下一组。
TIM2的作用是定期启动TIM1。调整总周期就是调整TIM2的周期。

TIM1输出4个脉冲的过程由TIM1的6个周期完成,6个周期的状态分别是:
周期0:CH1输出使能,其他通道输出禁止。
周期1:CH1、CH2输出使能,其他通道输出禁止。
周期2:CH2、CH3输出使能,其他通道输出禁止。
周期3:CH3、CH4输出使能,其他通道输出禁止。
周期4:CH4输出使能,其他通道输出禁止。
周期5:所有通道输出禁止。
这6个状态就是由CCER中的CCxE来控制的,对应的就是CCER_Buffer。

可以看到对每个通道来说,有2个周期是输出使能的,在这2个周期中这个通道的行为是:
1. 第一周期的CNT=1时刻触发通道的比较事件,通道输出Toggle变为低电平。
2. 同时触发DMA改写CCER,这个通道输出使能。
3. 第二周期的CNT=1时刻触发比较事件,通道输出Toggle变为高电平。
4. 第三周期的CNT=1时刻触发比较事件,通道输出Toggle变为低电平。
5. 同时触发DMA改写CCER,这个通道输出禁止,即此后保持低电平。
其中第3~4步之间的时间就是输出的脉冲。

漏掉的一点是如何让第1步Toggle之后这个通道输出的是低电平,这个是由CCER中的CCxP来控制的。

一周热门 更多>