Amruta (talk) 13:28, 17 March 2015 (IST)
Contents
[hide]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
Here we will discuss commonly used ADC registers.
ADCR ( ADC Control Register )
ADCR | ||||||||
---|---|---|---|---|---|---|---|---|
31:28 | 27 | 26:24 | 23:22 | 21 | 20:17 | 16 | 15:8 | 7:0 |
Reserved | EDGE | START | Reserved | PDN | Reserved | BURST | CLCKDIV | SEL |
ADGDR ( ADC Global Data Register )
ADCR | ||||||||
---|---|---|---|---|---|---|---|---|
31 | 27 | 26:24 | 23:16 | 15:4 | 3:0 | |||
Done | EDGE | Channel | Reserved | RESULT | Reserved |
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);
- }
- }