打印

问个PWM的问题?请高手指点。

[复制链接]
2291|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
乘风破浪|  楼主 | 2007-1-25 12:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     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之间强制输出高电平,之外强制输出低电平,
    可是新的问题又来了,因为我采用的是连续增/减模式,增半部分和减半部分理论上都会出现小脉冲,我该怎么办?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

9

帖子

0

粉丝