#include <msp430g2553.h>
unsigned int adc_temp[16];
unsigned int adc[4];
void init_adc()
{
ADC10CTL0 &= ~ENC;
ADC10CTL1 = CONSEQ_3 + INCH_3;
ADC10CTL0 = ADC10SHT_3 + MSC + ADC10ON + ADC10IE;
ADC10DTC1 = 0x10;
ADC10AE0 |= BIT0+BIT1+BIT2+BIT3;
}
void main()
{
char i;
WDTCTL = WDTPW + WDTHOLD;
init_adc();
while(1)
{
ADC10CTL0 &= ~ENC;
while (ADC10CTL1 & BUSY);
ADC10SA = (unsigned int)adc_temp;
ADC10CTL0 |= ENC + ADC10SC;
__bis_SR_register(LPM0_bits + GIE);
for(i=0;i<4;i++)
adc[i]=(adc_temp[i]+adc_temp[i+4]+adc_temp[i+8]+adc_temp[i+12])>>2;
}
}
#pragma vector=ADC10_VECTOR
__interrupt void adc_isr()
{
__bic_SR_register_on_exit(LPM0_bits);
}