Part Number: MSP430FR2355
Tool/software:
Hi
I am using MSP430FR2355 controller for my project,
I want to ADC for one of my project, i am initailaize all the ADC registers, ADC interrupt also working.
But while read from ADCMEM0 register always it's shows 101 or 102 value, i am applied voltage on the port pin 1.0 as 1.55VDC.
Help to resolve this issue.
I am starting the ADC conversion every 100ms once by using below commands.
ADCCTL0 |= (ADCENC | ADCSC);
My code is below:
void adc_config()
{
P1SEL0 |=BIT0;
P1SEL1 |=BIT0;
// Disable the GPIO power-on default high-impedance mode to activate
// previously configured port settings
PM5CTL0 &= ~LOCKLPM5;
// Configure ADC12
ADCCTL0 |= ADCSHT_2 | ADCON; // ADCON, S&H=16 ADC clks
ADCCTL1 |= ADCSHP; // ADCCLK = MODOSC; sampling timer
ADCCTL2 &= ~ADCRES; // clear ADCRES in ADCCTL
ADCCTL2 |= ADCRES_2; // 12-bit conversion results
ADCMCTL0 |= ADCINCH0; // A1 ADC input select; Vref=AVCC
ADCIE |= ADCIE0;
}
// 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:
ADC_data[0] = ADCMEM0;
__bic_SR_register_on_exit(LPM0_bits); // Clear CPUOFF bit from LPM0
break;
default:
break;
}
}
Thanks,
Yuvaraj