工具/软件:Code Composer Studio
我只是执行一个非常简单的代码、我尝试具有一个 PWM1A 输出信号并在振荡器上观察它。 但是、我尝试了几次尝试、没有响应。 我查看28377D 示例、我正在执行相同的操作、我甚至使用 TI 开发的示例代码、我在示波器上看不到任何内容。 我错过了吗? 代码示例如下所示。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "F28x_Project.h"
void ConfigureEPWM (void);
void main (void)//
{
InitSysCtrl();//
InitGpio();//
EALLOW;
CpuSysRegs.PCLKCR2.bit.EPWM4=1;//启用 EPWM4时钟
EDIS;
InitEPwm1Gpio();//
Dint;//
InitPieCtrl();//
IER = 0x0000;//
IFR=0x0000;//
InitPieVectTable();//
EALLOW;//
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=0;//
EDIS;//
ConfigureEPWM();//
EALLOW;//
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=1;//
EDIS;//
EINT;//启用全局中断 INTM
ERTM;//
}
空配置 EPWM (空)
{
EPwm1Regs.TBPRD=6000;// 2kHz PWM4A 信号
EPwm1Regs.TBPHS.bit.TBPHS=0x0000;//相位负载被忽略
EPwm1Regs.TBCTR=0x0000;//清除计数器
EPwm1Regs.TBCTL.bit.CTRMODE=TB_COUNT_UPDOWN;//向上计数模式
EPwm1Regs.TBCTL.bit.PHSEN=TB_DISABLE;//禁用相位寄存器
EPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV4;//除以1
EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV4;//除以1
EPwm1Regs.CMPCTL.bit.SHDWAMODE=CC_SHADODE;//绕过影子寄存器
EPwm1Regs.CMPCTL.bit.LOADAMODE=CC_CTR_ZERO;
EPwm1Regs.CMPA.bit.CMPA=3000;
EPwm1Regs.AQCTLA.bit.CAU=AQ_SET;//将 PWM4A 设置为零
EPwm1Regs.AQCTLA.bit.PRD=AQ_CLEAR;//当等于周期时清除 PWM4A
}