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.
我通过使用EPWM1中断实现EPWM1与EPWM4的内移相程序(即初始EPWM1与EPWM4的移相角为半个周期),期间EPWM2与EPWM3的时钟关闭。当EPWM1与EPWM4的移相比为0,即同相时打开EPWM2与EPWM3的时钟,但我打开EPWM2与EPWM3的时钟时,初始TBCTR不为0,这是为什么呢?
EPwm1Regs.ETSEL.bit.INTEN=0; //关PWM1(内移相)中断 EALLOW; EPwm2Regs.TBCTR=0; EPwm3Regs.TBCTR=0; EPwm5Regs.TBCTR=0; EPwm6Regs.TBCTR=0; // CpuTimer0Regs.TCR.bit.TSS = 0; //启动PID中断,即启动定时器0 // DELAY_US(1.1); //为了错开启动PWM2,3时因PWM1产生同步信号而产生的影响 while(EPwm1Regs.TBCTR != 0); SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK=1; //PWM2,3时钟开启 SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK=1; SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK=1; //PWM2,3时钟开启 SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK=1; EPwm2Regs.TZCLR.bit.OST=1; //清除PWM2,3错误联防标志位 EPwm3Regs.TZCLR.bit.OST=1; EPwm5Regs.TZCLR.bit.OST=1; //清除PWM2,3错误联防标志位 EPwm6Regs.TZCLR.bit.OST=1; EDIS;