QJ:您好!
您是否有任何可用于同步3个ePWM的示例代码,它们都是左对齐的?
我们如何验证它是否左对齐?
谢谢
Sb
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.
QJ:您好!
您是否有任何可用于同步3个ePWM的示例代码,它们都是左对齐的?
我们如何验证它是否左对齐?
谢谢
Sb
什么是左对齐? 您是指上升计数模式还是下降计数模式? PWM模块支持上升计数,下降计数和上升下降计数模式。 请参阅TRM中的ePWM章节。
_enable_interrupit_();
/*设置ADC */
adcStartConversion (adcREG1,adcGROUP1);
adcStartConversion (adcREG2,adcGROUP1);
KickerReg ->KICKER0 = 0x83E70B13U;
KickerReg ->KICKER1 = 0x95A4F1E0U;
PinMuxReg ->PINMMR35 = 0x0000;
KickerReg->KICKER0 = 0x0万U;
KickerReg->KICKER1 = 0x0万U;
/*设置etPWM */
etpwmSetCount (etpwmREG11000);
etpwmSetCount (etpwmREG 2500);
etpwmSetCount (etpwmREG3300);
etpwmSetCounterMode (etpwmREG1,CounterMode_UpDown);
etpwmSetCounterMode (etpwmREG2,CounterMode_UpDown);
etpwmSetCounterMode (etpwmREG3,CounterMode_UpDown);
etpwmSetSyncOut(etpwmREG1,SyncOut_CtrlEqZer);
etpwmSetSyncOut (etpwmREG2,SyncOut_EPWMxSYNCI);
etpwmSetSyncOut (etpwmREG3,SyncOut_EPWMxSYNCI);
etpwmREG2->TBCTL |=(uint16)2u <1U;// PHSEN
etpwmREG3->TBCTL |=(uint16)2u <1u;
/*将模块配置为在ctr=0时将PWMA值设置为1,在ctr=CmpA */时将其设置为0
etpwmActionQualConfig_t configPWM;
configPWM.CtrlEqPeriod_Action = ActionQual_Disabled;
configPWM.CtrlEqZero _Action = ActionQual_Disabled;
configPWM.CtrlEqCmpAux_Action = ActionQual_set;
configPWM.CtrlEqCmpADown _操作= ActionQual_Clear;
configPWM.CtrlEqCmpBUp_Action = ActionQual_Disabled;
configPWM.CtrlEqCmpBDown _操作= ActionQual_Disabled;
etpwmSetActionQualPwmA (etpwmREG1,configPWM);
etpwmSetActionQualPwmA (etpwmREG2,configPWM);
etpwmSetActionQualPwmA (etpwmREG3,configPWM);
/*启用SOC触发器*/
etpwmEnableSOCA (etpwmREG1,ctr_zero,EventPeriod_FirstEvent);
etpwmClearEventFlag(etpwmREG1, Event_SOCA);
etpwmTriggerEvent (etpwmREG1,Event_SOCA);
etpwmDisableCounterLoadOnSync(etpwmREG1);
etpwmEnableCounterLoadOnSync (etpwmREG2,0,0x2000);
etpwmEnableCounterLoadOnSync (etpwmREG3,0,0x2000);
etpwmEnableTimebasePeriodShadowMode(etpwmREG1);
etpwmEnableTimebasePeriodShadowMode(etpwmREG2);
etpwmEnableTimebasePeriodShadowMode(etpwmREG3);
etpwmEnableCmpAShadowMode(etpwmREG1, LoadMode_CtrlEqZer);
etpwmEnableCmpAShadowMode(etpwmREG2, LoadMode_CtrlEqZero);
etpwmEnableCmpAShadowMode (etpwmREG3,LoadMode_CtrlEqZero);
etpwmDeadBandConfig_t deadbandconfig;
deadbandconfig.halfCycleEnable = true;
deadbandconfig.inputmode = PWMA_RED_FED;
deadbandconfig.outputmode = PWMB_Fed_PWMA_red;
deadbandconfig.polacity = Invert_PWMB;
etpwmSetDeadBandDelay(etpwmREG 111.2112万 ;
etpwmSetDeadBandDelay(etpwmREG 211.2112万 ;
etpwmSetDeadBandDelay(etpwmREG 311.2112万 ;
etpwmEnableDeadBand (etpwmREG1,deadbandconfig);
etpwmEnableDeadBand (etpwmREG2,deadbandconfig);
etpwmEnableDeadBand (etpwmREG3,deadbandconfig)
您认为这会起作用吗? 我们如何进行验证?