工具/软件:Code Composer Studio
我使用两个 ePWM 模块 ePWM2和 ePWM3、每个模块都有自己的 TZ 信号来生成 数字比较的 DCAEVT1.SYNC 来清除计数器寄存器。 即 TZ1表示 ePWM2、TZ2表示 ePWM3。
但我发现 TZ2可以清零 ePWM2和 ePWM3的计数器寄存器、那么为什么呢? 相关代码如下:
EPwm2Regs.DCTRIPSEL.bit.DCALCOMPSEL = DC_TZ1;
EPwm2Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_HI;
EPwm2Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT1;
EPwm2Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_异 步;
EPwm2Regs.TZCTL.bit.TZA = TZ_NO_CHANGE;
EPwm2Regs.TZCTL.bit.TSB = TZ_NO_CHANGE;
EPwm2Regs.TZCTL.bit.DCAEVT1 = TZ_NO_CHANGE;
EPwm2Regs.DCACTL.bit.EVT1SYNCE = 1;
EPwm3Regs.DCTRIPSEL.bit.DCALCOMPSEL = DC_TZ2;
EPwm3Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_HI;
EPwm3Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT1;
EPwm3Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_异 步;
EPwm3Regs.TZSEL.bit.DCAEVT1 = 1;
EPwm3Regs.TZCTL.bit.TZA = TZ_NO_CHANGE;
EPwm3Regs.TZCTL.bit.TSB = TZ_NO_CHANGE;
EPwm3Regs.TZCTL.bit.DCAEVT1 = TZ_NO_CHANGE;
EPwm3Regs.DCACTL.bit.EVT1SYNCE = 1;
GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0;//启用 GPIO12上的上拉电阻(TZ1)
GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 3;//异步输入 GPIO12 (TZ1)
EALLOW;
InputXbarRegs.INPUT1SELECT = 12;
EDIS;
GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0;//启用 GPIO11上的上拉电阻(TZ2)
GpioCtrlRegs.GPAQSEL1.bit.GPIO11 = 3;//异步输入 GPIO11 (TZ2)
EALLOW;
InputXbarRegs.INPUT2SELECT = 11;
EDIS;