This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好,
我目前正在使用ADC通过PWM工作。 我激活了两个具有相同初始化的PWM。但我在epwm1a和epwm2a之间得到了一点相移。如何消除这种情况,因为我的要求是两个ePWM都应该具有相同的波形。
请帮助
您好,Madhuri,
Madhuri Depuru 说:请帮助[/QUOT]
请尝试以下操作:
EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; //禁用TBCLK直至ePWM配置 EDIS; //ePWM1配置 //ePWM2配置 EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; //在ePWM配置后启用TBCLK EDIS;
此致,
Gautam
您好Gautam:
我想我已经将该部分纳入了我的计划,但我仍然无法获得结果。 我正在将PWM部分纳入计划。请帮助。
void InitEPwm1()
{
clk_disableTbClockSync(myClk);
clk_enablePwmClock (myClk,PWM_Number_1);
GPIO设置上拉(myGpio,GPIO编号_0,GPIO _上拉_禁用);
GPIO设置上拉(myGpio,GPIO编号_1,GPIO _上拉_禁用);
GPIO设置模式(myGpio,GPIO编号_0,GPIO _0_Mode_EPWM1A);
GPIO_setMode (myGpio,GPIO编号_1,GPIO _1_Mode_EPWM1B);
PWM_setSyncMode (myPwm1,PWM_SyncMode_EPWMxSYNC)
PWM_enableCounterLoad (myPwm1);
//设置相位
/* PWM_setPhase (myPwm1100);
PWM_setPhase (myPwm1200);
PWM_setPhase (myPwm1300);*/
PWM_setPeriod (myPwm1,PWM1_TIMER_TBPRD);
PWM_setCounterMode (myPwm1,PWM_CounterMode_up); //计数
PWM_setIntMode (myPwm1,PWM_IntMode_CounterEqualZero); //在零事件中选择INT
PWM_enableInt (myPwm1); //启用INT
PWM_setIntPeriod (myPwm1,PWM_IntPeriod_FirstEvent); //在第一个事件上生成INT
PWM_setActionQual_Period_PwmA (myPwm1,PWM_ActionQual_Set);
PWM_setActionQual_CntUp_CmpA_PwmA (myPwm1,PWM_ActionQual_Clear);
PWM_setActionQual_Period_PwmB (myPwm1,PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmB (myPwm1,PWM_ActionQual_Clear);
clk_enableTbClockSync(myClk);
// EPwm3Regs.DBCTL.bit.out模式= DB_FULL启用;
//EPwm3Regs.DBRED = 50;
// EPwm3Regs.DBFED = 100;
}
void Initepwm3()
{
clk_disableTbClockSync(myClk);
clk_enablePwmClock (myClk,PWM_NUMBER_3);
GPIO设置上拉(myGpio,GPIO编号_4,GPIO _上拉_禁用);
GPIO设置上拉(myGpio,GPIO编号_5,GPIO _上拉_禁用);
GPIO设置模式(myGpio,GPIO编号_4,GPIO _4_Mode_EPWM3A);
GPIO设置模式(myGpio,GPIO编号_5,GPIO _5_Mode_EPWM3B);
//设置同步
PWM_setSyncMode (myPwm3,PWM_SyncMode_EPWMxSYNC);
// PWM_setSyncMode (myPwm2,PWM_SyncMode_EPWMxSYNC);
PWM_enableCounterLoad (myPwm3);
PWM_setPeriod (myPwm3,PWM3_TIMER_TBPRD);
PWM_setCounterMode (myPwm3,PWM_CounterMode_Up);
PWM_setIntMode (myPwm3,PWM_IntMode_CounterEqualZero);
PWM_enableInt (myPwm3);
PWM_setIntPeriod (myPwm3,PWM_IntPeriod_FirstEvent);
PWM_setActionQual_Period_PwmA (myPwm3,PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmA (myPwm3,PWM_ActionQual_Clear);
PWM_setActionQual_Period_PwmB (myPwm3,PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmB (myPwm3,PWM_ActionQual_Clear);
clk_enableTbClockSync(myClk);
}
Madhuri Depuru 说:我想我已经将该部件纳入了我的计划[/QUOT]
不是你没有采纳我的建议!
clk_disableTbClockSync(myClk); InitEPwm1(); InitEPwm2(); InitEPwm3(); clk_enableTbClockSync(myClk);
请按上述步骤每次启用和禁用时钟同步。
此致,
Guatam