28069 AD连续转换问题,想设置成不需要触发,一上电然后自己转换,并通过DMA传送,现在就卡在AD的连续自动转换上了,就是不对,不能进中断,郁闷了,想设置成中断部分只是读取一下值,不软件启动,因为到时候这个中断是关闭的,不开
//初始化部分
PieVectTable.ADCINT2 = &adc_isr;
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx2 = 1;
//中断函数部分
__interrupt void adc_isr(void)
{
EALLOW;
//使用ADCSOCFRC1启动
AdcRegs.ADCSOCFRC1.bit.SOC0 = 1;
AdcRegs.ADCSOCFRC1.bit.SOC8 = 1;
EDIS;
BeepFlag_1S=1;
Voltage1[0] = AdcResult.ADCRESULT0; //ADCINA0
Voltage2[0] = AdcResult.ADCRESULT1; //ADCINB0 正常
Voltage1[1] = 0; //ADCINA0
Voltage2[1] = 0; //ADCINB0 正常
Voltage1[2] = 0; //ADCINA0
Voltage2[2] = 0; //ADCINB0 正常
Voltage1[3] = 0; //ADCINA0
Voltage2[3] = 0; //ADCINB0 正常
AdcRegs.ADCINTFLGCLR.bit.ADCINT2 = 1; //Clear ADCINT1 flag reinitialize for next SOC
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
return;
}
//AD配置部分
EALLOW;
AdcRegs.ADCCTL1.bit.ADCREFSEL = 1; // Page485 选择外部VREF
AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 0; // Enable non-overlap mode 0允许重叠/1不允许
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //ADCINT1 trips after AdcResults latch
AdcRegs.INTSEL1N2.bit.INT2E = 1; //Enabled ADCINT2
AdcRegs.INTSEL1N2.bit.INT2CONT = 0; //Disable ADCINT2 Continuous mode
AdcRegs.INTSEL1N2.bit.INT2SEL = 1; //setup EOC1 to trigger ADCINT2 to fire
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN0 = 1; // 同时采样
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0; //set SOC0 channel select to ADCINA0
AdcRegs.ADCSOC1CTL.bit.CHSEL = 8; //set SOC1 channel select to ADCINB0
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 0; //set SOC0 start trigger on software
AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 0; //set SOC1 start trigger on software
AdcRegs.ADCSOC0CTL.bit.ACQPS = 6; //set SOC0 S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
AdcRegs.ADCSOC1CTL.bit.ACQPS = 6; //set SOC0 S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)
AdcRegs.ADCINTSOCSEL1.bit.SOC0 = 2; //ADCINT2 will trigger SOC0. TRIGSEL field is ignored.
AdcRegs.ADCINTSOCSEL2.bit.SOC8 = 2; //ADCINT2 will trigger SOC0. TRIGSEL field is ignored.
//使用ADCSOCFRC1启动
AdcRegs.ADCSOCFRC1.bit.SOC0 = 1;
AdcRegs.ADCSOCFRC1.bit.SOC8 = 1;
EDIS;