专家您好:
我现在用的是picolo28034,需要用AD的以下功能:
1.同时采样8个AD通道模式 2.SOCX触发源都是PWM2_SOCA 3.在AD转换完成后触发ADCINT1中断,即PIETABLE中INT1.1位
我需要的是等这8个通道全部转换完成后,就只触发一个ADCINT1中断,
以下是我的配置,请帮我审查下是否正确,同网上给出得例程看,我少了(!!!标注的两句)
谢谢
EALLOW;
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN0 = 1; //SOC0/SOC1同时采样
//SOC0
AdcRegs.ADCSOC0CTL.bit.ACQPS=6;//SOC0采样窗口
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0; //soc通道选择A0 ---ADCRESULT0
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
//SOC1
AdcRegs.ADCSOC1CTL.bit.ACQPS=6;//SOC1采样窗口
AdcRegs.ADCSOC1CTL.bit.CHSEL = 8; //soc通道选择B0 ---ADCRESULT1
AdcRegs.ADCSOC1CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN2 = 1; //SOC2/SOC3同时采样
//SOC2
AdcRegs.ADCSOC0CTL.bit.ACQPS=6;//SOC2采样窗口
AdcRegs.ADCSOC0CTL.bit.CHSEL = 1; //soc通道选择A1 ---ADCRESULT2
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
//SOC3
AdcRegs.ADCSOC1CTL.bit.ACQPS=6;//SOC3采样窗口
AdcRegs.ADCSOC1CTL.bit.CHSEL = 9; //soc通道选择B1 ---ADCRESULT3
AdcRegs.ADCSOC1CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN4 = 1; //SOC4/SOC5同时采样
//SOC2
AdcRegs.ADCSOC0CTL.bit.ACQPS=6;//SOC4采样窗口
AdcRegs.ADCSOC0CTL.bit.CHSEL = 2; //soc通道选择A2 ---ADCRESULT4
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
//SOC3
AdcRegs.ADCSOC1CTL.bit.ACQPS=6;//SOC5采样窗口
AdcRegs.ADCSOC1CTL.bit.CHSEL = 10; //soc通道选择B2 ---ADCRESULT5
AdcRegs.ADCSOC1CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
AdcRegs.ADCSAMPLEMODE.bit.SIMULEN6 = 1; //SOC6/SOC7同时采样
//SOC2
AdcRegs.ADCSOC0CTL.bit.ACQPS=6;//SOC6采样窗口
AdcRegs.ADCSOC0CTL.bit.CHSEL = 3; //soc通道选择A3 ---ADCRESULT6
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
//SOC3
AdcRegs.ADCSOC1CTL.bit.ACQPS=6;//SOC7采样窗口
AdcRegs.ADCSOC1CTL.bit.CHSEL = 11; //soc通道选择B3 ---ADCRESULT7
AdcRegs.ADCSOC1CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //结果存入寄存器才产生中断
PieVectTable.ADCINT1 = &ADC_convered;
!!! AdcRegs.INTSEL1N2.bit.INT1SEL = 1; //中断线1选择soc1--什么意思?
!!! AdcRegs.INTSEL1N2.bit.INT1CONT = 0; //什么意思?
AdcRegs.INTSEL1N2.bit.INT1E = 1; //中断使能
PieCtrlRegs.PIEIER1.bit.INTx1 = 1; //使能int1.1
EDIS;