Other Parts Discussed in Thread: MSP430FR4133
Hi,
I recently been having trouble with one of the TI examples for the MSP430FR4133. I am trying to use the ADC to sample voltage on separate pins. As in trying to use the ADC to sample on p1.3 and p1.4 one after another.
When doing this it either only samples the first port or not at all. I have attached my code in the hope someone may have an idea of what is going wrong with it.
#include <msp430.h>
#include <driverlib.h>
int ADC_Result;
int flag;
int senso;
int sensor[2];
int main(void)
{
WDTCTL = WDTPW | WDTHOLD;
ADCCTL0 |= ADCSHT_2 | ADCON;
ADCCTL1 |= ADCSHP| ADCCONSEQ_1;
ADCCTL2 |= ADCRES;
ADCMCTL0 |= ADCSREF_1;
ADCIE |=ADCIE0;
PM5CTL0 &= ~LOCKLPM5;
PMMCTL0_H = PMMPW_H;
PMMCTL2 |= INTREFEN;
__delay_cycles(400);
flag =0;
while(1)
{
if(flag ==0){
ADC_disableConversions(ADC_BASE,ADC_COMPLETECONVERSION);
ADCIV = ADCIV_NONE;
ADCMCTL0 |= ADCINCH_3;
__delay_cycles(1000);
flag=1;
}
else if(flag ==1)
{
ADC_disableConversions(ADC_BASE,ADC_COMPLETECONVERSION);
ADCIV = ADCIV_NONE;
ADCMCTL0 |= ADCINCH_4;
__delay_cycles(1000);
flag=0;
}
ADCCTL0 |= ADCENC | ADCSC;
__bis_SR_register(LPM0_bits | GIE);
}
}
#pragma vector=ADC_VECTOR /
__interrupt void ADC_ISR(void)
{
switch(__even_in_range(ADCIV,ADCIV_ADCIFG))
{
// ADCIV = ADC interrupt vector register used to determine
// which enabled ADC interrupt source requested an interrupt
case ADCIV_ADCIFG: // set when conversion complete ADC Interrupt flag register
{
// ADCIFG0 is automatically reset by reading the
// ADCMEM0 register or may be reset with software.
if(flag==0)
{
sensor[0]=ADCMEM0;
}
else if(flag==1)
{
sensor[1]=ADCMEM0;
}
__bic_SR_register_on_exit(LPM0_bits);
}
break;
}
}
Any help will be appreciated.
Thank you