This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28035 PWM

你好,请问怎样设置才能使正在工作的某个PWM停下来?谢谢

  • 楼主参考以下:

    初始化配置:

         EALLOW;

         EPwm1Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT  

         EPwm2Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT      

         EPwm3Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT

    // What do we want the OST/CBC events to do?

    // TZA events can force EPWMxA

    // TZB events can force EPWMxB

         EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO; // EPWMxA will go low  根据需要设置停止输出时的PWM电平。

         EPwm1Regs.TZCTL.bit.TZB = TZ_FORCE_LO; // EPWMxB will go low

         EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_LO; // EPWMxA will go low

         EPwm2Regs.TZCTL.bit.TZB = TZ_FORCE_LO; // EPWMxB will go low

         EPwm3Regs.TZCTL.bit.TZA = TZ_FORCE_LO; // EPWMxA will go low

         EPwm3Regs.TZCTL.bit.TZB = TZ_FORCE_LO; // EPWMxB will go low

         EDIS;

    以下为停止PWM输出:

    // Stop PWM output

    //===========================================================================

    //Force trip EPwm1,2,3

    //===========================================================================

    EALLOW;

    EPwm1Regs.TZFRC.bit.OST = 0x1;        //disabPWMl

    EPwm2Regs.TZFRC.bit.OST = 0x1;        //disabPWM2

    EPwm3Regs.TZFRC.bit.OST = 0x1;        //disabPWM3

    EDIS;

    以下为使能PWM输出:

    // Enable  PWM output

    //===========================================================================

    //EnablePWM EPwm1,2,3

    //===========================================================================

    EALLOW;

       EPwm1Regs.TZCLR.bit.OST = 1; //EnablePWM1

       EPwm2Regs.TZCLR.bit.OST = 1; //EnablePWM2

       EPwm3Regs.TZCLR.bit.OST = 1; //EnablePWM3

    EDIS;

  • 请问这个地方

      EPwm1Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT  

         EPwm2Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT      

         EPwm3Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT

    是否是应该改成OSHT2  OSHT3。如果你这样设置道理是什么样子的?是否是只用1个OSHT1就可以完成6路pwm的封锁呢?

  • OSHT1为1代表允许TZ1 为OSHT保护模式,任何一个TZ信号都可以配置为保护一个或者多个PWM模块的PWM输出。因此下面的配置,可以实现6路PWM的封锁。

      EPwm1Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT  

         EPwm2Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT      

         EPwm3Regs.TZSEL.bit.OSHT1   = 1;  //enable TZ1 for OSHT


  • 那么TZ信号触发之后是否立即实现6路PWM的封锁,如果使能TZ中断,则TZ的中断优先级对PWM的封锁有没有影响?