Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all articles
Browse latest Browse all 22053

CCS/MSP430FR4133: ADC Code Problem

$
0
0

Part Number:MSP430FR4133

Tool/software: Code Composer Studio

Hi everyone,

I have this code block for ADC. My application is reading voltage from ADC pin. I have some conditions, like if voltage is between 0.8V and 1.2V, turn on the led. There is no problem about debugging also. Please check the code. 

#include <msp430.h>
#define ENABLE_PINS 0xFFFE                                                      // Enables inputs and outputs
void ADC_SETUP(void);                                                           // Used to setup ADC12 peripheral

main(){
        WDTCTL = WDTPW | WDTHOLD;                                               // Stop WDT
        PM5CTL0 = ENABLE_PINS;                                                  // Enable inputs and outputs
        P1DIR = BIT0;                                                           // Set RED LED to output
        SYSCFG2 |= ADCPCTL9;
        ADC_SETUP();                                                            // Sets up ADC peripheral

    while(1){

                ADCCTL0 = ADCCTL0 | ADCENC;                                     // Enable conversion
                ADCCTL0 = ADCCTL0 | ADCSC;                                      // Start conversion


                        if ((ADCMEM0 >= 0x3C0)&&(ADCMEM0<=0x5C0)){              // 0.8V<Voltage<1.2V HIGH
                                P1OUT = BIT0;                                   // Turn on red LED
                            }
                        else {                                                  // Else
                                P1OUT = 0x00;                                   // Turn off red LED
                            }
            }                                                                   // end while(1)
        }                                                                       // end main()

void ADC_SETUP(void)
{
    #define ADC_SHT_16 0x0200                                                   // 16 clock cycles for sample and hold
    #define ADC_ON 0x0010                                                       // Used to turn ADC12 peripheral on
    #define ADC_SHT_SRC_SEL 0x0200                                              // Selects source for sample & hold
    #define ADC_12BIT 0x0020                                                    // Selects 12-bits of resolution
    #define ADC_P81 0x0009                                                      // Use input P8.1 for analog input --->A9
    ADCCTL0 = ADC_SHT_16 | ADC_ON ;                                             // Turn on, set sample & hold time
    ADCCTL1 = ADC_SHT_SRC_SEL;                                                  // Specify sample & hold clock source
    ADCCTL2 = ADC_12BIT;                                                        // 12-bit conversion results
    ADCMCTL0 = ADC_P81;                                                         // P8.1 is analog input --->A9
}

Thanks,


Viewing all articles
Browse latest Browse all 22053

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>