Difference between revisions of "ARM ADC Programming"
Line 3: | Line 3: | ||
---- | ---- | ||
=Basics= | =Basics= | ||
+ | LPC1768 has 12 bit ADC which is multiplexed among 8 input pins. It's measurement range is typically 3V which means that ADC resolution is approximately 0.7 mV. | ||
+ | |||
+ | ===Registers=== | ||
+ | ====ADCR(ADC Control Register)==== | ||
+ | ====ADGDR(ADC Global Data Register)==== | ||
+ | ====ADSTAT(ADC Status Register)==== | ||
+ | |||
=Schematic= | =Schematic= | ||
=Code= | =Code= |
Revision as of 13:20, 18 March 2015
Amruta (talk) 13:28, 17 March 2015 (IST)
Contents
Basics
LPC1768 has 12 bit ADC which is multiplexed among 8 input pins. It's measurement range is typically 3V which means that ADC resolution is approximately 0.7 mV.
Registers
ADCR(ADC Control Register)
ADGDR(ADC Global Data Register)
ADSTAT(ADC Status Register)
Schematic
Code
/*----------------------------------------------------------------------------- note : Refer adc.h to enable ADC channels. ------------------------------------------------------------------------------*/ #include "lpc17xx.h" //device specific heaader file #include "uart.h" //Explore Embedded UART library which conatins the lcd routines #include "adc.h" //Explore Embedded ADC library which conatins the adc routines /* start the main program */ int main() { uint16_t adc_result; /* Setup and initialize the microcontroller system */ SystemInit(); /* Initialize the UART before displaying any thing on the lcd */ UART_Init(UART0,9600); /* Initialize the adc before starting the conversion */ ADC_Init(); /* Display "ADC Channel zero" on first line*/ UART_Printf("ADC Channel zero"); /* Display the adc channel zero value continously */ while(1) { /*Get the adc value of channel five */ adc_result= ADC_GetAdcValue(5); /*Display the adc value on UART*/ UART_Printf("\n %u",adc_result); } }