This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于MSP430F5438的ADC问题

Other Parts Discussed in Thread: OPA835

请教关于5438的ADC问题

采用的是序列通道模式,AD输入端使用了OPA835作电压跟随器,电压范围在0~2V,现在的问题是获得的结果不准。代码如下:

void ADC12_Init(void)
{
P6SEL |= BIT0;

ADC12CTL0 &=~ ADC12ENC;


ADC12CTL1|= ADC12CSTARTADD_8+ADC12DIV_1+ADC12SHS_0;

ADC12MCTL8|=ADC12SREF_0+ADC12INCH_0;
ADC12MCTL9|=ADC12SREF_0+ADC12INCH_0;
ADC12MCTL10|=ADC12SREF_0+ADC12INCH_0;
ADC12MCTL11|=ADC12SREF_0+ADC12INCH_0;
ADC12MCTL12|=ADC12SREF_0+ADC12INCH_0;
ADC12MCTL13|=ADC12SREF_0+ADC12INCH_0;
ADC12MCTL14|=ADC12SREF_0+ADC12INCH_0;
ADC12MCTL15|=ADC12SREF_0+ADC12INCH_0+ADC12EOS;

ADC12CTL0 = ADC12SHT1_4 + ADC12ON; 

ADC12CTL1 = ADC12SSEL_1+ADC12CONSEQ_1; 

ADC12CTL2|= ADC12TCOFF+ADC12RES_2;
ADC12CTL2&=~ ADC12DF+ADC12SR;

ADC12IE = ADC12IE8+ADC12IE9+ADC12IE10+ADC12IE11+ADC12IE12+ADC12IE13+ADC12IE14+ADC12IE15;
ADC12CTL0 |= ADC12ENC;

}

利用定时器TA产生的信号来启动(ADC12CTL0 |= ADC12SC;)或者停止(ADC12CTL0 &=~ ADC12SC;),使用的REF电压为VCC3.3V,且信号的频率不超过250Hz,得到的结果就是不准确,例如,在示波器上得到的电压值为1.9V,但是从ADC12MEMx的结果换算过来只有1.3V,请问出现这样的问题的原因是什么?

另外,这个ADC出现不能工作在8位和10位的模式,选择这两种工作模式,在MEM里得到的结果仍旧是12位的;以及通道0的结果与其他通道结果相差非常大,这是什么原因?

希望得到论坛里的大牛的指导,谢谢了!!