主题: controlSUITE中讨论的其他部件
我想在 微处理器 TMS320F2.8035万上使用ePWM块生成50 Hz变化的占空比PWM。但我无法获得如此低的频率。下面是我的ePWM代码。当我 在示波器上显示时,我也无法获得50%的占空比。 这用于生成补充脉冲。
void InitEPwm1example()
{
//设置TBCLK
EPwm1Regs.TBPRD = 600万;//设置计时器周期801 TBCLK
EPwm1Regs.TBPHS.Half.TBPHS = 0x0000;//相位为0
EPwm1Regs.TBCTR = 0x0000;//清除计数器
//设置比较值
EPwm1Regs.CMPA.Half.CMPA = 3600万;// set比较一个值
EPwm1Regs.CMPB = 360万;//设置比较B值
//设置计数器模式
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;//禁用相加载
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4;//与SYSCLKOUT的时钟比率
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV4;
//设置阴影
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHAME;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADO;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZE;//零加载
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
//设置操作
EPwm1Regs.AQCTLA.bit.CAU = AQ_set;//在事件A上设置PWM1A,上升计数
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;//清除事件A上的PWM1A,向下计数
EPwm1Regs.AQCTLB.bit.CBU = AQ_Clear;//清除事件B上的PWM1B,上升计数
EPwm1Regs.AQCTLB.bit.CBD = AQ_set;//在事件B上设置PWM1B,下载计数
}