|
| | | | | | | 建议先仿真,你写个代码在这,很少有人有时间帮你去研究。再说,还得看得懂代码才行。
|
|
|
|
| | | | | 看这个PWM初始化部分要对着手册一个一个的看,很少有人有这个时间来帮你做这个事情。
|
|
|
| | | | | PWM1要设置成不同步,并发出同步脉冲给PWM2 PWM3 这样设置Phase移相才有用。
|
|
|
|
| | | | | ...
EPwm1Regs.TBPHS.half.TBPHS = 0; // Set Phase register to zero
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Master module
...
...
EPwm2Regs.TBPHS.half.TBPHS = 800; // Phase = 300/900 * 360 = 120 deg
EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; // Slave module
EPwm2Regs.TBCTL.bit.PHSDIR = TB_UP; // Count DOWN on sync (=120 deg)
...
...
EPwm3Regs.TBPHS.half.TBPHS = 300; // Phase = 300/900 * 360 = 120 deg
EPwm3Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Slave module(这里应该得配置成跟PWM2一样?,disable就没有相移了(一般基准也就是此处的epwm1可以配置成disable,其他要相对epwm1超前或滞后配置PHSDIR))
EPwm2Regs.TBCTL.bit.PHSDIR = TB_UP; // Count UP on sync (=240 deg)(这里应该是要改为EPWM3?TB_UP应该是超前基准epwm1的意思)
.....
建议lz好好查看datasheet
|
|
|