S2k144 uses ADC1-se6 for ad sampling, now I use PDB1 to trigger AD1_SE6. The reason for not working?
========================================================================
const pdb_adc_pretrigger_config_t pdb_config_1_adcTrigConfig0 = {
.adcPreTriggerIdx = 0U,
.preTriggerEnable = true,
.preTriggerOutputEnable = true,
.preTriggerBackToBackEnable = false
};
const adc_converter_config_t adc_config_1_ConvConfig0 = {
.clockDivide = ADC_CLK_DIVIDE_1,
.sampleTime = 255U,
.resolution = ADC_RESOLUTION_12BIT,
.inputClock = ADC_CLK_ALT_1,
.trigger = ADC_TRIGGER_HARDWARE,
.pretriggerSel = ADC_PRETRIGGER_SEL_PDB,
.triggerSel = ADC_TRIGGER_SEL_PDB,
.dmaEnable = false,
.voltageRef = ADC_VOLTAGEREF_VREF,
.continuousConvEnable = false,
.supplyMonitoringEnable = false
};
adc_chan_config_t adc_config_1_ChnConfig0 = {
.interruptEnable = true,
.channel = ADC_INPUTCHAN_EXT6
/*! @brief PDB timer configurations */
const pdb_timer_config_t pdb_config_1_timerConfig0 = {
.loadValueMode = PDB_LOAD_VAL_IMMEDIATELY,
.seqErrIntEnable = false,
.clkPreDiv = PDB_CLK_PREDIV_BY_128,
.clkPreMultFactor = PDB_CLK_PREMULT_FACT_AS_10,
.triggerInput = PDB_SOFTWARE_TRIGGER,
.continuousModeEnable = false,
.dmaEnable = false,
.intEnable = false,
.instanceBackToBackEnable = false,
};
void ADC_IRQHandler(void)
{
if(ADC_DRV_GetConvCompleteFlag(INST_ADC_CONFIG_1, 6U))
{
ADC_DRV_GetChanResult(INST_ADC_CONFIG_1,6U,&adcRawValue);
adcConvDone = true;
}
}
int main()
{
CLOCK_DRV_Init(&clockMan1_InitConfig0);
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0);
ADC_DRV_ConfigConverter(INST_ADC_CONFIG_1, &adc_config_1_ConvConfig0);
ADC_DRV_AutoCalibration(INST_ADC_CONFIG_1);
INT_SYS_InstallHandler(adcIRQ, &ADC_IRQHandler,(isr_t*) 0);
EDMA_DRV_Init(&dmaController_State, &dmaController_InitConfig, edmaChnStateArray, edmaChnConfigArray, EDMA_CONFIGURED_CHANNELS_COUNT);
PDB_DRV_Init(INST_PDB_1,&pdb_config_1_timerConfig0);
PDB_DRV_Enable(INST_PDB_1);
PDB_DRV_SetTimerModulusValue(INST_PDB_1,37500);
PDB_DRV_ConfigAdcPreTrigger(INST_PDB_1,0UL,&pdb_config_1_adcTrigConfig0);
PDB_DRV_SetAdcPreTriggerDelayValue(INST_PDB_1,0UL,0UL,37500);
PDB_DRV_LoadValuesCmd(INST_PDB_1);
PDB_DRV_SoftTriggerCmd(INST_PDB_1);
INT_SYS_EnableIRQ(adcIRQ);
while(1)
{
if(adcConvDone == true)
{
adcConvDone = false;
PDB_DRV_SoftTriggerCmd(INST_PDB_1);}
}
}