主题中讨论的其他器件:LAUNCHXL-F280025C
我一直使用 LAUNCHXL-F280025C 生成60kHz 的 PWM 脉冲、同时也插入了 DAD 时间。 观察 IO0和 IO1中的 PWM1A 和 PWM1B: LAUNCHXL-F280025C、J4连接器。 配置设置如下所示:
请告诉我为什么会出现这些不必要的短脉冲??? 我还与其他 PWM 通道进行了检查、
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
GPIO 配置:
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;//启用 GPIO0上的上拉
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0;//启用 GPIO1上的上拉
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;// GPIO0 = PWM1A
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1;// GPIO1 = PWM1B
EDIS;
PWM 寄存器配置:
EPwm1Regs.TBPHS.all = 0;
EPwm1Regs.TBCTL.all =(FREE_RUN_FLAG+PHSDIR_CNT_UP+HSPCLKDIV_PRESCALE_X_1+CLKDIV_PRESCALE_X_1+PRDLD_SHADAN影+PHASE_DISABLE+TIMER_CNT_UP_DN);
EPwm1Regs.CMPCTL.ALL =(LOADAMODE_ZRO+LOADBMODE_ZRO+SHDWAMODE_SHAD+SWBMODE_影子);
EPwm1Regs.AQCTLA.all = CAU_CLEAR +CAD_SET;
EPwm1Regs.PCCTL.all = CHPEN_DISABLE;
EPwm1Regs.DBCTL.all = 0x000B;
EPwm1Regs.EPWMSYNCINSEL.bit.SEL=0;
EALLOW;
EPwm1Regs.TZCTL.All=0xFFFF;
EDIS;
加载 PWM 寄存器:
TB_MAX=100;
EPwm1Regs.TBPRD = TB_MAX;
EPwm2Regs.TBPRD = TB_MAX;
EPwm3Regs.TBPRD = TB_MAX;
EPwm1Regs.CMPA.bit.CMPA=TB_MAX>>1;
EPwm1Regs.CMPB.bit.CMPB=TB_MAX>>1;
////////////////////////////////////////////////////////////////////////
请在观察窗口中查看示波器短路和 PWM1寄存器值: