Tengo un MSP430F2618 con construido en ADC de 12 bits, pero por alguna razón, los valores que devuelve siempre terminan con los 2 bits menos significativos establecidos en 1, excepto cuando se pone a cero. En otras palabras, los recuentos siempre tienen la forma 0x ## 3, 0x ## 7, 0x ## B o 0x ## F. ¿Me estoy perdiendo algo en mi inicialización que mágicamente convierte mi ADC de 12 bits en un 10 bits? ¿Podría haber alguna tensión transitoria que siempre sature el circuito de muestreo para los bits menos significativos? ¿Alguna sugerencia?
P6SEL |= 0x01; // P6.0,P6.1-ADC option select
ADC12CTL0 = SHT0_8 + ADC12ON + MSC; // Set sampling time, turn on ADC12 (256 ADC12CLK cycles, ADCON, Multiple sample and conversion)
ADC12CTL1 = SHP + CONSEQ_1; // Use sampling timer (SAMPCON signal is sourced from the sampling timer, Sequence-of-channels conversion sequence mode)
ADC12MCTL0 = SREF_6 + INCH_0 + EOS; //inch (Input channel) assigns channel to this memory location, (Reference: VR+ =VeREF+ and VR- = VREF-), end of sequence
ADC12IE = 0x01; // Enable interrupt
ADC12CTL0 |= ENC; // Conversion enabled