Hi,
Regarding your problem, I suggest you modify the code as following:
void Change_channel(uint8 channelA,uint8 channelB)
{
Master_Adc_Config.STATUS1A = AIEN_OFF | DIFF_SINGLE | ADC_SC1_ADCH(channelA);
Master_Adc_Config.STATUS1B = AIEN_OFF | DIFF_SINGLE | ADC_SC1_ADCH(channelB);
ADC_Config_Alt(ADC1_BASE_PTR, &Master_Adc_Config); // config ADC1
}
uint8_t hw_adc_test(void)
{
sim_init();
pdb_init();
adc_init(19);
lptmr_init(0x01110,3);
enable_irq(INT_LPTimer-16);
PDB0_SC |= PDB_SC_SWTRIG_MASK; // kick off the PDB - just once
while(1)
{
printf("R0A=%d R0B=%d\n",ADC1_RA, ADC1_RB);
time_delay_ms(3000);
Change_channel(5,18); //sample channel 5 and channel18
}
// disable the PDB
PDB0_SC = 0;
}
But the ADC16 can only sample two channels triggered by PDB, if you use software triggering, you can only sample one channel one times, the ADC16 does not support scan mode. If you want to sample multiple channel, you can change the channel by calling Change_channe().
Hope it can help you
BR
Xiangjun Rong