interrupt void adc_isr(void)
{
IFR=0x0000;
// PieCtrl.PIEIFR1.all = 0;
PieCtrl.PIEACK.all=0xffff;
///sampling data
V1=AdcRegs.RESULT0>>4;//sampling input phase A
Va=V1*3/4095+ADCLO ;
i++;
value[i]=Va;
IFR=0x0000;
PieCtrl.PIEACK.all=0xffff;
AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1; //clear interrupt
AdcRegs.ADCTRL2.bit.SOC_SEQ1=0; //
}
void init_adc(void)
{
// Configure ADC
AdcRegs.ADCMAXCONV.all = 0x0101; // Setup 2 conv's on SEQ1
AdcRegs.ADCCHSELSEQ2.bit.conv01 = 0x1; // Setup ADCINA 5 as input .
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1; // Enable SOC to start SEQ1
}
我用软件启动ADC,观察value数组的值,有个奇怪的问题,正常情况下一个周期启动ADC采样20次,但是我可以采到20个数据,但是数据都重复4次,也就是这20个数据只有5个不同的值,
value[0]=1
value[1]=1
value[2]=1
value[3]=1
value[4]=2
value[5]=2
value[6]=2
value[7]=2
value[8]=3
value[9]=3
value[10]=3
value[11]=3
数据要重复4次,我观察ADC的启动没问题,一个周期是启动20次,但就是读出来的数据要重复,请问这是因为什么呢? |