Other Parts Discussed in Thread: INA126
Hi
I get all FFF's and I tried all different setup commands, including the example in MSPware. An example code of what I tried is below. I am using a 128msec timer A to enable the A/D. If I break in the A/D ISR and look at the registers such ADC12MEM1, it's always 0xFFF even though the voltage on the pin is 1V.
Any clues as to what is going on?
Thanks,
void main(void)
{ WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
P6SEL |=0x3F;//0-5 A/D
P6OUT |=0x20; //to keep power on
// set up basic tomer A for interval count
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
TA1CCTL0 = CCIE; // CCR0 interrupt enabled
TA1CCR0 = 4096;
TA1CTL = TASSEL_1 + MC_1 + TACLR; // A`CLK, upmode, clear TAR
INIT_A_D(); //initialize A/D
_EINT();
while(1);
}
void INIT_A_D(void) //function init A/D
{
REFCTL0=0;//REFON+REFOUT;
ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_2+ADC12SHT1_2+ADC12REFON+ADC12REF2_5V; // Turn on ADC12, set sampling time
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1+ADC12SSEL_1; // single sequence
ADC12CTL2 = ADC12REFOUT+ADC12RES_2;
ADC12MCTL0 = ADC12INCH_0+ADC12SREF_1; //
ADC12MCTL1 = ADC12INCH_1+ADC12SREF_1; //
ADC12MCTL2 = ADC12INCH_2+ADC12SREF_1;
ADC12MCTL3 = ADC12INCH_3+ADC12SREF_1; //
ADC12MCTL4 = ADC12INCH_4+ADC12SREF_1; //
ADC12MCTL12 = ADC12INCH_12+ADC12SREF_1; //
ADC12MCTL13 = ADC12INCH_13+ADC12SREF_1+ADC12EOS; //
ADC12IE = 0x08; // Enable ADC12IFG.3
ADC12CTL0 |= ADC12ENC; // Enable conversions
}//
//
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR(void)
{
Results[1] = ADC12MEM1; // Hi_Temp
Results[2] = ADC12MEM2; // Lo_Temp
Results[3] = ADC12MEM12; //
Results[4] = ADC12MEM13; // Ref_Temp
Results[5] = ADC12MEM0; //
Results[6] = ADC12MEM3; //
Results[7] = ADC12MEM4; //
}//end of a/d int service routine
//##########################################
//timer Int set to 128msec ints
#pragma vector=TIMER1_A0_VECTOR
__interrupt void TIMER1_A0_ISR(void)
{
ADC12CTL0 |= ADC12SC;//enable a/d interrupt
}//end