Part Number: MSP430FR2311
void initADC(void){
// Configure ADC10
ADCCTL0 |= ADCSHT_7 | ADCON; // ADC Sample and Hold Time = 192 cycles, ADC on bit set
ADCCTL1 |= ADCSHP | ADCCONSEQ_1; //Sample and Hold pulse mode select, Clk = ACLK
ADCCTL2 |= ADCRES; //10 - bit Resolution
ADCIE |= ADCIE0; //Interrupt Enable
ADCMCTL0|= ADCINCH_0 + ADCINCH_1 + ADCINCH_3| ADCSREF_1;
PMMCTL0_H = PMMPW_H; // Unlock the PMM registers
PMMCTL2 |= INTREFEN_0; // disable internal reference
__delay_cycles(10); // Delay for reference settling
}
// ADC interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=ADC_VECTOR
__interrupt void ADC_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(ADC_VECTOR))) ADC_ISR (void)
#else
#error Compiler not supported!
#endif
{
switch(__even_in_range(ADCIV,ADCIV_ADCIFG))
{
case ADCIV_NONE:
break;
case ADCIV_ADCOVIFG:
break;
case ADCIV_ADCTOVIFG:
break;
case ADCIV_ADCHIIFG:
break;
case ADCIV_ADCLOIFG:
break;
case ADCIV_ADCINIFG:
break;
case ADCIV_ADCIFG: // ch 5
ADC_SM[Index] = ADCMEM0;
done =0;
Index++;
loop = 1;
if(Index >= 50)
{
Index = 0;
loop = 0;
done = 1;
// __bic_SR_register_on_exit(LPM0_bits); // Exit LPM0
__no_operation();
}
break;
default:
break;
}
}
I'm trying to get ADC readings from A0, A1, and A3 and I can't figure out which channels this corresponds to in the ADC service routine. Here is my interrupt routine, and my ADC set up to read from either different channels or the same channel. I just need to be able to differentiate which pin I am getting it from.Thanks.
Tool/software: Code Composer Studio