你好,如题,我在使用MSP430F5310中ADC10_A模块来测量模拟电压值时,测量A0、A2通道的模拟电压输入,在使能了IO引脚的第二功能后,根据多通道序列模式的图表对AD进行了配置,发现转换后的结果不对,在调试中我怀疑我的配置有问题,我先试了一下单通道分别转换A0和A2的值时,分别记下此时寄存器ADC10MEM0中转换值,这个时候结果都是是对的。多通道序列转换就不对了,下面是我ADC10的配置:
void Init_AD(void)
{
while(REFCTL0 & REFGENBUSY); // If ref generator busy, WAIT
REFCTL0 |= REFON + REFVSEL_2 + REFMSTR; //打开共享参考电压 + 2.5V + REF Master Control
//ADC时钟MODCLK(in the 5MHZ rang),不分频
ADC10CTL0 &=~ADC10ENC; //ADC10 conversion disabled
ADC10CTL0 |= ADC10ON + ADC10SHT_6 + ADC10MSC ; //开启ADC10 + 128采样保持时间 + 多重采样转化(重复序列模式有效)
ADC10CTL0 &=~ADC10MSC; //这里是看到多通道序列转换图示时使用右边条件转换把这位关掉了
ADC10CTL1 |= ADC10SHP + ADC10CONSEQ_3; //SAMPCON信号来自采样定时器 + 多通道多次转换
ADC10CTL2 |= ADC10RES; // 10-bit conversion results
ADC10MCTL0 |= ADC10SREF_1 + ADC10INCH_2; //使用内部参考电压V(R+)=VREF and V(R-)=AVSS + A0(V),A1(NC),A2(I)(EoS)
ADC10IE=0X0000; //关闭使能
ADC10CTL0 |=ADC10ENC;
}
主程序运行时配置ADC10和定时器A0,IO使能为第二功能,ADC的转换和读值放在TIMER_A中,定时器定时间隔为60ms,我想问一下,我的多通道转换中间A1并没有用到,如果我用P6SEL屏蔽了A1,那在多通道序列转换时,它是被跳过还是按A2到A1再到A0的顺序转换?