我们编写了以下代码,用于生成3个PWM,将所有PWM同步,并将EPWMA用于ADC转换(ADC1组1,ADC 2组1)。 我们如何验证ADC转换是在上行计数器的中心触发的,因为我们已经完成了计数器上行的所有配置? 在触发ADC转换时,是否有任何事件或标志为我们提供参考?
我们的代码初始化:
*/开始
_enable_interrupit_();
adcStartConversion (adcREG1,adcGROUP1);
adcStartConversion (adcREG2,adcGROUP1);
//etpwmStartTBCLK();
KickerReg ->KICKER0 = 0x83E70B13U;
KickerReg ->KICKER1 = 0x95A4F1E0U;
PinMuxReg ->PINMMR35 = 0x1000;
KickerReg->KICKER0 = 0x0万U;
KickerReg->KICKER1 = 0x0万U;
/*设置etPWM */
etpwmSetCounterMode (etpwmREG1,CounterMode_UpDown);
etpwmSetCounterMode (etpwmREG2,CounterMode_UpDown);
etpwmSetCounterMode (etpwmREG3,CounterMode_UpDown);
etpwmSetSyncOut(etpwmREG1,SyncOut_CtrlEqZer);
etpwmSetSyncOut (etpwmREG2,SyncOut_EPWMxSYNCI);
etpwmSetSyncOut (etpwmREG3,SyncOut_EPWMxSYNCI);
etpwmDisableCounterLoadOnSync(etpwmREG1);
etpwmEnableCounterLoadOnSync (etpwmREG2,0,0x2000);
etpwmEnableCounterLoadOnSync (etpwmREG3,0,0x2000);
etpwmREG2->TBCTL |=(uint16)4u;
etpwmREG3->TBCTL |=(uint16)4u;
/*将模块配置为在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 (etpwmREG2,CTR PRD,EventPeriod_FirstEvent);
etpwmClearEventFlag (etpwmREG2,Event_SOCA);
etpwmTriggerEvent (etpwmREG2,Event_SOCA);
etpwmEnableCmpAShadowMode(etpwmREG1, LoadMode_CtrlEqZer);
etpwmEnableCmpAShadowMode(etpwmREG2, LoadMode_CtrlEqZero);
etpwmEnableCmpAShadowMode (etpwmREG3,LoadMode_CtrlEqZero);
etpwmStartTBCLK();
adcEnableNotification (adcREG1,adcGROUP1);
adcEnableNotification (adcREG2,adcGROUP1);
*/结束