DSP2812的PWM单元产生两路PWM脉冲,我想让其中一路PWM7超前(或者滞后)于另一路PWM1,该怎么样实现?大家都是用什么方式塑造这两路脉冲的? 附图是我想要的两路脉冲: 我用了EVA中的一路PWM1和EVB中的另一路PWM2,然后采用EvbRegs.CMPR4 = EvaRegs.CMPR1-30,使得PWM7确实超前了PWM1,但是,与此同时带来的问题是使得PWM7的脉宽变大了(比如我只想要0.06T的脉宽),我该怎样减少PWM7的脉宽? 我用了 {if (EvbRegs.T3CNT < EvbRegs.CMPR4) EvbRegs.ACTRB.bit.CMP7ACT = 0; else if(EvbRegs.T3CNT < EvbRegs.CMPR4+45) EvbRegs.ACTRB.bit.CMP7ACT = 3; else EvbRegs.ACTRB.bit.CMP7ACT = 0;} 目的是想通过强制高或强制低满足我的PWM7,只在EvbRegs.CMPR4<EvbRegs.T3CNT<EvbRegs.CMPR4+45之间强制输出高电平,之外强制输出低电平, 可是新的问题又来了,因为我采用的是连续增/减模式,增半部分和减半部分理论上都会出现小脉冲,我该怎么办?
|