每当 ePWM 输出偏高时,我想使用数字比较触发 ADC SOC。
如下代码所示,GPIO 14配置为 ePWM 输出,I 将 GPIO 14接线至 EPWM8的数字比较模块,然后按照代码所示配置数字比较模块。
我的问题是,此配置是否起作用? 即使用边缘筛选器。
在我在这里看到的其他例子中,是函数
正在使用'SET_DigitalCompareBlankingzEvent()"。 我不在配置中使用它,因为我不会使用时间基准计数器=期间或时间基准计数器=零事件来开始消隐,而是使用来自 GPIO 的事件进入高位。
//设置 X 栏
//使用输入 X_bar
Xbar_setInputPin (XBAR_Input1,14);//选择正在配置的 x 条输入并输入 GPIO 引脚
Xbar_lockInput (XBAR_Input1);//将输入锁定到 x 条输入
//设置数字比较子模块
ePWM_selectDigitalCompareTripInput (EPWM8_BASE,ePWM_DC_TRIPIN1,ePWM_DC_TYPE_DCAH);//选择 DC Trip 输入
ePWM_setTripZoneDigitalCompareEventCondition (EPWM8_BASE,ePWM_TZ_DC_OUTPUT _A1,ePWM_TZ_EVENT_DCXH_HIGH);
ePWM_setDigitalCompareFilterInput (EPWM8_BASE,ePWM_DC_WINDOWS_SOURCE _DCAEVT1);
ePWM_DisableDigitalCompareWindowInverseMode (EPWM8_BASE);
ePWM_enableDigitalCompareEdgeFilter (EPWM8_BASE);
ePWM_setDigitalCompareEdgeFilterMode (EPWM8_BASE,ePWM_DC_EDGEFILT_MODE_Rising);
ePWM_setDigitalCompareEdgeFilterEdgeCount (EPWM8_BASE,ePWM_DC_EDGEFILT_EDGECNT_1);
ePWM_setDigitalCompareWindowLength (EPWM8_BASE,空白窗口);
ePWM_setDigitalCompareWindowOffset (EPWM8_BASE,1);
ePWM_enableDigitalCompareBlankingWindow (EPWM8_BASE);
ePWM_setDigitalCompareEventSource (EPWM8_BASE,ePWM_DC_MODULE_A,ePWM_DC_EVENT_1,ePWM_DC_EVENT_SOURCE _FILT_SIGNAL);
ePWM_enableDigitalCompareADCtrigger (EPWM8_BASE,ePWM_DC_MODULE_A);
//设置事件触发器
ePWM_enableADCtrigger (EPWM8_BASE,ePWM_SOC_A);
ePWM_setADC触发 源(EPWM8_BASE,ePWM_SOC_A,ePWM_SOC_DCxEVT1);
//设置 ADC SOC
ADC_setupSOC (ADCA_BASE,ADC_SOC_NUMBER0,ADC_TRIG_EPWM8_SOCA,ADC_CH_ADCIN0,SAMPLE_HOT_TIME);
如果此条码与我正在配置的条码相符,请向我提供建议?