(63 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[category: LPC1768 Tutorials]]
 
[[category: LPC1768 Tutorials]]
 
 
 
 
=Objective=
 
 
In this tutorial we are going to discuss how to use the inbuilt LPC1768 ADC.<br>
 
In this tutorial we are going to discuss how to use the inbuilt LPC1768 ADC.<br>
 
Here we will discuss the register associated with ADC and mainly we will focus on basic registers required for ADC.<br>
 
Here we will discuss the register associated with ADC and mainly we will focus on basic registers required for ADC.<br>
 
The other features like Burst Conversion, accessing different register for each channel, ADC conversion depending on Timers,ADC Interrupts etc will be out of scope of this tutorial.<br>
 
The other features like Burst Conversion, accessing different register for each channel, ADC conversion depending on Timers,ADC Interrupts etc will be out of scope of this tutorial.<br>
 
Later we will see how to interface a POT,LDR,Temp Sensor(LM35).<br>
 
Later we will see how to interface a POT,LDR,Temp Sensor(LM35).<br>
Finally we will see how to use the ExploreEmbedded libraries for ADC.<br>
+
Finally we will see how to use the ExploreEmbedded libraries for ADC.<br><br><br><br>
 
+
 
+
 
+
 
+
 
+
  
 
=LPC1768 ADC Block=
 
=LPC1768 ADC Block=
Line 20: Line 10:
 
The ADC reference voltage is measured across  VREFN to VREFP, meaning it can do the conversion within this range. Usually the VREFP is connected to VDD and VREFN is connected to GND.<br>
 
The ADC reference voltage is measured across  VREFN to VREFP, meaning it can do the conversion within this range. Usually the VREFP is connected to VDD and VREFN is connected to GND.<br>
 
As LPC1768 works on 3.3 volts, this will be the ADC reference voltage.<br>
 
As LPC1768 works on 3.3 volts, this will be the ADC reference voltage.<br>
Now the resolution of ADC = 3.3/(2^12) = 3.3/4096 =0.000805 = 0.8mV<br>
+
Now the  
 +
$$resolution of ADC = 3.3/(2^{12}) = 3.3/4096 =0.000805 = 0.8mV$$
  
 
The below block diagram shows the ADC input pins multiplexed with other GPIO pins.<br>
 
The below block diagram shows the ADC input pins multiplexed with other GPIO pins.<br>
 
The ADC pin can be enabled by configuring the corresponding PINSEL register to select ADC function.<br>
 
The ADC pin can be enabled by configuring the corresponding PINSEL register to select ADC function.<br>
 
When the ADC function is selected for that pin in the Pin Select register, other Digital signals are disconnected from the ADC input pins.
 
When the ADC function is selected for that pin in the Pin Select register, other Digital signals are disconnected from the ADC input pins.
{| class="wikitable" style="text-align:left; background-color:#ABCDEF;"
+
 
 +
{| class="table table-striped table-hover table-condensed table-bordered"
 +
|-class="info"
 
!Adc Channel || Port Pin || Pin Functions || Associated PINSEL Register
 
!Adc Channel || Port Pin || Pin Functions || Associated PINSEL Register
 
|-
 
|-
 
|AD0|| P0.23  || 0-GPIO, 1-<b>AD0[0]</b>, 2-I2SRX_CLK, 3-CAP3[0] ||14,15 bits of PINSEL1  
 
|AD0|| P0.23  || 0-GPIO, 1-<b>AD0[0]</b>, 2-I2SRX_CLK, 3-CAP3[0] ||14,15 bits of PINSEL1  
|-                                                                  
+
|-class="active"                                                               
 
|AD1|| P0.24  || 0-GPIO, 1-<b>AD0[1]</b>, 2-I2SRX_WS,  3-CAP3[1] ||16,17 bits of PINSEL1  
 
|AD1|| P0.24  || 0-GPIO, 1-<b>AD0[1]</b>, 2-I2SRX_WS,  3-CAP3[1] ||16,17 bits of PINSEL1  
|-                                                                  
+
|-                                                            
 
|AD2|| P0.25  || 0-GPIO, 1-<b>AD0[2]</b>, 2-I2SRX_SDA, 3-TXD3        ||18,19 bits of PINSEL1  
 
|AD2|| P0.25  || 0-GPIO, 1-<b>AD0[2]</b>, 2-I2SRX_SDA, 3-TXD3        ||18,19 bits of PINSEL1  
|-                                                                  
+
|-class="active"                                                               
 
|AD3|| P0.26  || 0-GPIO, 1-<b>AD0[3]</b>, 2-AOUT,        3-RXD3    ||20,21 bits of PINSEL1  
 
|AD3|| P0.26  || 0-GPIO, 1-<b>AD0[3]</b>, 2-AOUT,        3-RXD3    ||20,21 bits of PINSEL1  
|-                                                                  
+
|-                                                                
 
|AD4|| P1.30  || 0-GPIO, 1-VBUS,  2-  ,      3-<b>AD0[4]</b>        ||28,29 bits of PINSEL3  
 
|AD4|| P1.30  || 0-GPIO, 1-VBUS,  2-  ,      3-<b>AD0[4]</b>        ||28,29 bits of PINSEL3  
|-                                                                  
+
|-class="active"                                                                   
 
|AD5|| P1.31  || 0-GPIO, 1-SCK1,  2-  ,        3-<b>AD0[5]</b>        ||30,31 bits of PINSEL3  
 
|AD5|| P1.31  || 0-GPIO, 1-SCK1,  2-  ,        3-<b>AD0[5]</b>        ||30,31 bits of PINSEL3  
|-                                                                  
+
|-                                                                
 
|AD6|| P0.3  ||    0-GPIO, 1-RXD0,        2-<b>AD0[6]</b>,      3-  ||6,7 bits of PINSEL0   
 
|AD6|| P0.3  ||    0-GPIO, 1-RXD0,        2-<b>AD0[6]</b>,      3-  ||6,7 bits of PINSEL0   
|-                                                                  
+
|-class="active"                                                             
 
|AD7|| P0.2  ||    0-GPIO, 1-TXD0,        2-<b>AD0[7]</b>,      3-  ||4,5 bits of PINSEL0   
 
|AD7|| P0.2  ||    0-GPIO, 1-TXD0,        2-<b>AD0[7]</b>,      3-  ||4,5 bits of PINSEL0   
|}
+
|}<br><br>
 
+
 
+
 
+
 
+
 
+
  
 
=ADC Registers  =
 
=ADC Registers  =
Line 54: Line 42:
 
We are going to focus only on ADCR and ADGDR as these are sufficient for simple A/D conversion.<br>
 
We are going to focus only on ADCR and ADGDR as these are sufficient for simple A/D conversion.<br>
 
However once you are familer with LPC1768 ADC, you can explore the other features and the associated registers.
 
However once you are familer with LPC1768 ADC, you can explore the other features and the associated registers.
{| class="wikitable" style="text-align:left; background-color:#ABCDEF;"
+
{| class="table table-striped table-hover table-condensed table-bordered"
 +
|-class="info"
 
!Register || Description
 
!Register || Description
 
|-
 
|-
 
|ADCR|| A/D COntrol Register: Used for Configuring the ADC
 
|ADCR|| A/D COntrol Register: Used for Configuring the ADC
|-
+
|-class="active"
 
|ADGDR|| A/D Global Data Register: This register contains the ADC’s DONE bit and the result of the most recent A/D conversion
 
|ADGDR|| A/D Global Data Register: This register contains the ADC’s DONE bit and the result of the most recent A/D conversion
 
|-
 
|-
 
|ADINTEN|| A/D Interrupt Enable Register
 
|ADINTEN|| A/D Interrupt Enable Register
|-
+
|-class="active"
 
|ADDR0 - ADDR7|| A/D Channel Data Register: Contains the recent ADC value for respective channel
 
|ADDR0 - ADDR7|| A/D Channel Data Register: Contains the recent ADC value for respective channel
 
|-
 
|-
 
|ADSTAT|| A/D Status Register: Contains DONE & OVERRUN flag for all the ADC channels
 
|ADSTAT|| A/D Status Register: Contains DONE & OVERRUN flag for all the ADC channels
 
|}
 
|}
 
+
<br><br><br><br>
 
+
 
+
 
+
 
+
  
 
=ADC Register Configuration=
 
=ADC Register Configuration=
 
Now lets see how to configure the individual registers for ADC conversion.
 
Now lets see how to configure the individual registers for ADC conversion.
=====ADCR ( ADC Control Register )=====
+
 
This registers contains the bits for channel selection, ADC conversion clock speed and Starting the conversion.
+
{| class="table table-striped table-hover table-condensed table-bordered"
{| class="wikitable" style="text-align:center; background-color:#ABCDEF;margin: 1em auto 1em auto"
+
|-class="info"
!colspan = '9'|ADCR  
+
|ADCR
 
|-
 
|-
 
|31:28|| 27 || 26:24|| 23:22 ||  21  || 20:17 || 16|| 15:8 || 7:0   
 
|31:28|| 27 || 26:24|| 23:22 ||  21  || 20:17 || 16|| 15:8 || 7:0   
Line 104: Line 89:
  
 
'''Bit 24:26 – START'''<br>
 
'''Bit 24:26 – START'''<br>
When the BURST bit is 0, these bits control whether and when an A/D conversion is started:
+
When the BURST bit is 0, these bits control whether and when an A/D conversion is started:<br>
{| class="wikitable" style="text-align:center; background-color:#C0C0C0;"
+
000 - Conversion Stopped<br>
!Bit Value || FIFO Status
+
001- Start Conversion Now<br>
|-
+
 
|000|| Conversion Stopped
+
|-
+
|001|| Start Conversion Now
+
|}
+
 
The remaining cases (010 to 111) are about starting conversion on occurrence of  edge on a particular CAP or MAT pin.
 
The remaining cases (010 to 111) are about starting conversion on occurrence of  edge on a particular CAP or MAT pin.
  
Line 117: Line 98:
 
'''Bit 27 - EDGE'''<br>
 
'''Bit 27 - EDGE'''<br>
 
This bit is significant only when the START field contains 010-111.
 
This bit is significant only when the START field contains 010-111.
It starts conversion on selected CAP or MAT input.
+
It starts conversion on selected CAP or MAT input.<br>
{| class="wikitable" style="text-align:center; background-color:#C0C0C0;"
+
0 - On Falling Edge<br>
!Bit Value || Start Conversion
+
1 - On Rising Edge<br>
|-
+
<br><br>
|0|| On Falling Edge
+
|-
+
|1||On Rising Edge
+
|-
+
|}
+
 
+
 
+
  
 
=====ADGDR ( ADC Global Data Register )=====
 
=====ADGDR ( ADC Global Data Register )=====
{| class="wikitable" style="text-align:center; background-color:#ABCDEF;margin: 1em auto 1em auto"
+
{| class="table table-striped table-hover table-condensed table-bordered"
!colspan = '9'|ADCR
+
|-class="info"
 +
|ADGDR
 
|-
 
|-
 
|31|| 27 || 26:24|| 23:16|| 15:4 || 3:0   
 
|31|| 27 || 26:24|| 23:16|| 15:4 || 3:0   
Line 138: Line 113:
 
|}
 
|}
  
'''Bit 15:4 - RESULT'''
+
'''Bit 15:4 - RESULT'''<br>
 
This field contains the 12bit A/D conversion value for the selected channel in <b>ADCR.SEL</b><br>
 
This field contains the 12bit A/D conversion value for the selected channel in <b>ADCR.SEL</b><br>
 
The vale for this register should be read oncve the conversion is completed ie DONE bit is set.
 
The vale for this register should be read oncve the conversion is completed ie DONE bit is set.
Line 152: Line 127:
  
 
'''Bit 31 - DONE'''<br>
 
'''Bit 31 - DONE'''<br>
This bit is set to 1 when an A/D conversion completes. It is cleared when this register is read and when the ADCR is written. If the ADCR is written while a conversion is still in progress, this bit is set and a new conversion is started.
+
This bit is set to 1 when an A/D conversion completes. It is cleared when this register is read and when the ADCR is written. If the ADCR is written while a conversion is still in progress, this bit is set and a new conversion is started.<br><br>
  
====Some other registers====
+
==Some other registers==
 
Though there are some more registers, we are restricting ourselves to use these registers only as this will be more convenient.
 
Though there are some more registers, we are restricting ourselves to use these registers only as this will be more convenient.
  
Line 160: Line 135:
  
 
One can use the A/D Global Data Register to read all data from the ADC else use the A/D Channel Data
 
One can use the A/D Global Data Register to read all data from the ADC else use the A/D Channel Data
Registers. It is important to use one method consistently because the DONE and OVERRUN flags can otherwise get out of synch between the AD0GDR and the A/D Channel Data Registers, potentially causing erroneous interrupts or DMA activity.
+
Registers. It is important to use one method consistently because the DONE and OVERRUN flags can otherwise get out of synch between the AD0GDR and the A/D Channel Data Registers, potentially causing erroneous interrupts or DMA activity.<br><br>
  
  
  
 +
=Hardware Connections=
 +
[[File:ADC WithLCD.jpg]]<br>
  
 
+
=Steps for Configuring ADC=
 
+
=Schematic=
+
[[File:Schematic LPC1768 ADC.svg|x500px|center|Schematic]]<br>
+
 
+
 
+
 
+
 
+
 
+
=Steps for Configuring and Using the Adc=
+
 
Below are the steps for configuring the LPC1768 ADC.
 
Below are the steps for configuring the LPC1768 ADC.
#Step1: Configure the GPIO pin for ADC function using PINSEL register.
+
# Configure the GPIO pin for ADC function using PINSEL register.
#Step2: Enable the CLock to ADC module.
+
#Enable the CLock to ADC module.
#Step3: Deselect all the channels and Power on the internal ADC module by setting ADCR.PDN bit.
+
#Deselect all the channels and Power on the internal ADC module by setting ADCR.PDN bit.
#Step4: Select the Particular channel for A/D conversion by setting the corresponding bits in ADCR.SEL
+
#Select the Particular channel for A/D conversion by setting the corresponding bits in ADCR.SEL
#Step5: Set the ADCR.START bit for starting the A/D conversion for selected channel.
+
# Set the ADCR.START bit for starting the A/D conversion for selected channel.
#Step6: Wait for the conversion to complete, ADCR.DONE bit will be set once conversion is over.
+
#Wait for the conversion to complete, ADGR.DONE bit will be set once conversion is over.
#Step7: Read the 12-bit A/D value from ADGR.RESULT.
+
# Read the 12-bit A/D value from ADGR.RESULT.
#Step8: Use it for further processing or just display on LCD.
+
# Use it for further processing or just display on LCD.<br><br>
  
=Code=
+
=Code Examples =
 +
===Example 1 ===
 
Here we are going to do the A/D conversion for only ADC[0]. The result of the A/D conversion will be displayed on the LCD.<br>
 
Here we are going to do the A/D conversion for only ADC[0]. The result of the A/D conversion will be displayed on the LCD.<br>
  
<syntaxhighlight>
+
<html>
#include<lpc17xx.h>
+
<script src="https://gist.github.com/Amritach/554b29cfa98ffb417cd5.js"></script>
#include "lcd.h"        //ExploreEmbedded LCD library which contains the lcd routines
+
</html>
#include "delay.h"     //ExploreEmbedded delay library which contains the delay routines
+
<br><br>
       
+
/* Bit positions of ADCR and ADGR registers */
+
#define SBIT_BURST  16u
+
#define SBIT_START 24u
+
#define SBIT_PDN 21u
+
#define SBIT_EDGE 27u
+
#define SBIT_DONE 31u
+
#define SBIT_RESULT   4u
+
#define SBIT_CLCKDIV  8u
+
 
+
 
+
void main()
+
{
+
    uint16_t adc_result;
+
    SystemInit();                              //Clock and PLL configuration
+
 
+
  /* Setup/Map the controller pins for LCD operation
+
                            RS  RW  EN    D0    D1    D2      D3      D4    D5      D6    D7*/
+
    LCD_SetUp(P2_0,P2_1,P2_2,P1_20,P1_21,P1_22,P1_23,P1_24,P1_25,P1_26,P1_27);
+
  
  /* Specify the LCD type(2x16) for initialization*/
+
===Using Explore Embedded Libraries===
    LCD_Init(2,16);   
+
In the above example we discussed how to configure and use the inbuilt LPC1768 ADC.<br>
   
+
Now we will see how to use the exploreEmbededd ADC libraries and interface POT,LDR and Temperature Sensor(LM35).<br>
     
+
Refer the LCD tutorial for interfacing the 2x16 lcd.
    LPC_SC->PCONP |= (1 << 12);      /* Enable CLOCK for internal ADC controller */
+
  
    LPC_ADC->ADCR = ((1<<SBIT_PDN) | (10<<SBIT_CLCKDIV));  //Set the clock and Power ON ADC module
+
<html>  
 +
<script src="https://gist.github.com/Amritach/c2832a936ab1faf3117e.js"></script>
 +
</html>
  
    LPC_PINCON->PINSEL1|= 0x01<<14;      /* Select the P0_23 AD0[0] for ADC function */
+
= Downloads=
 +
Download the complete project folder from the below link:
 +
https://codeload.github.com/ExploreEmbedded/Explore-Cortex-M3-LPC1768-Stick-DVB-14001/zip/master<br><br><br><br>
  
   
 
  
    while(1)
+
Have a opinion, suggestion , question or feedback about the article let it out here!
    {
+
       
+
        LPC_ADC->ADCR  |= 0x01;        /* Select Channel 0 by setting 0th bit of ADCR */
+
        DELAY_us(10);                  /* allow the channel voltage to stabilize*/
+
       
+
        util_BitSet(LPC_ADC->ADCR,SBIT_START);            /*Start ADC conversion*/
+
       
+
        while(util_GetBitStatus(LPC_ADC->ADGDR,SBIT_DONE)==0);  /* wait till conversion completes */
+
       
+
        adc_result = (LPC_ADC->ADGDR >> SBIT_RESULT) & 0xfff;  /*Read the 12bit adc result*/
+
       
+
        LCD_GoToLine(0);                      /* Go to First line of 2x16 LCD */
+
        LCD_Printf("Adc0: %4d",adc_result);  /* Display 4-digit adc result */ 
+
    }
+
}
+
</syntaxhighlight>   
+
 
{{DISQUS}}
 
{{DISQUS}}

Latest revision as of 13:39, 5 May 2016

In this tutorial we are going to discuss how to use the inbuilt LPC1768 ADC.
Here we will discuss the register associated with ADC and mainly we will focus on basic registers required for ADC.
The other features like Burst Conversion, accessing different register for each channel, ADC conversion depending on Timers,ADC Interrupts etc will be out of scope of this tutorial.
Later we will see how to interface a POT,LDR,Temp Sensor(LM35).
Finally we will see how to use the ExploreEmbedded libraries for ADC.



LPC1768 ADC Block

LPC1768 has an inbuilt 12 bit Successive Approximation ADC which is multiplexed among 8 input pins.
The ADC reference voltage is measured across VREFN to VREFP, meaning it can do the conversion within this range. Usually the VREFP is connected to VDD and VREFN is connected to GND.
As LPC1768 works on 3.3 volts, this will be the ADC reference voltage.
Now the $$resolution of ADC = 3.3/(2^{12}) = 3.3/4096 =0.000805 = 0.8mV$$

The below block diagram shows the ADC input pins multiplexed with other GPIO pins.
The ADC pin can be enabled by configuring the corresponding PINSEL register to select ADC function.
When the ADC function is selected for that pin in the Pin Select register, other Digital signals are disconnected from the ADC input pins.

Adc Channel Port Pin Pin Functions Associated PINSEL Register
AD0 P0.23 0-GPIO, 1-AD0[0], 2-I2SRX_CLK, 3-CAP3[0] 14,15 bits of PINSEL1
AD1 P0.24 0-GPIO, 1-AD0[1], 2-I2SRX_WS, 3-CAP3[1] 16,17 bits of PINSEL1
AD2 P0.25 0-GPIO, 1-AD0[2], 2-I2SRX_SDA, 3-TXD3 18,19 bits of PINSEL1
AD3 P0.26 0-GPIO, 1-AD0[3], 2-AOUT, 3-RXD3 20,21 bits of PINSEL1
AD4 P1.30 0-GPIO, 1-VBUS, 2- , 3-AD0[4] 28,29 bits of PINSEL3
AD5 P1.31 0-GPIO, 1-SCK1, 2- , 3-AD0[5] 30,31 bits of PINSEL3
AD6 P0.3 0-GPIO, 1-RXD0, 2-AD0[6], 3- 6,7 bits of PINSEL0
AD7 P0.2 0-GPIO, 1-TXD0, 2-AD0[7], 3- 4,5 bits of PINSEL0


ADC Registers

The below table shows the registers associated with LPC1768 ADC.
We are going to focus only on ADCR and ADGDR as these are sufficient for simple A/D conversion.
However once you are familer with LPC1768 ADC, you can explore the other features and the associated registers.

Register Description
ADCR A/D COntrol Register: Used for Configuring the ADC
ADGDR A/D Global Data Register: This register contains the ADC’s DONE bit and the result of the most recent A/D conversion
ADINTEN A/D Interrupt Enable Register
ADDR0 - ADDR7 A/D Channel Data Register: Contains the recent ADC value for respective channel
ADSTAT A/D Status Register: Contains DONE & OVERRUN flag for all the ADC channels





ADC Register Configuration

Now lets see how to configure the individual registers for ADC conversion.

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

Bit 7:0 – SEL : Channel Select
These bits are used to select a particular channel for ADC conversion. One bit is allotted for each channel. Setting the Bit-0 will make the ADC to sample AD0[0] for conversion. Similary setting bit-7 will do the conversion for AD0[7].


Bit 15:8 – CLCKDIV : Clock Divisor
The APB clock (PCLK_ADC0) is divided by (this value plus one) to produce the clock for the A/D converter, which should be less than or equal to 13 MHz.


Bit 16 – BURST
This bit is used for BURST conversion. If this bit is set the ADC module will do the conversion for all the channels that are selected(SET) in SEL bits.
CLearing this bit will disable the BURST conversion.


Bit 21 – PDN : Power Down Mode
Setting this bit brings ADC out of power down mode and makes it operational.
Clearing this bit will power down the ADC.


Bit 24:26 – START
When the BURST bit is 0, these bits control whether and when an A/D conversion is started:
000 - Conversion Stopped
001- Start Conversion Now

The remaining cases (010 to 111) are about starting conversion on occurrence of edge on a particular CAP or MAT pin.


Bit 27 - EDGE
This bit is significant only when the START field contains 010-111. It starts conversion on selected CAP or MAT input.
0 - On Falling Edge
1 - On Rising Edge


ADGDR ( ADC Global Data Register )
ADGDR
31 27 26:24 23:16 15:4 3:0
DONE OVERRUN CHN Reserved RESULT Reserved

Bit 15:4 - RESULT
This field contains the 12bit A/D conversion value for the selected channel in ADCR.SEL
The vale for this register should be read oncve the conversion is completed ie DONE bit is set.


Bit 26:24 - CHN : Channel
These bits contain the channel number for which the A/D conversion is done and the converted value is available in RESULT bits(e.g. 000 identifies channel 0, 011 channel 3...).


Bit 27 - OVERRUN
This bit is set during the BURST mode where the previous conversion data is overwritten by the new A/D conversion value.


Bit 31 - DONE
This bit is set to 1 when an A/D conversion completes. It is cleared when this register is read and when the ADCR is written. If the ADCR is written while a conversion is still in progress, this bit is set and a new conversion is started.

Some other registers

Though there are some more registers, we are restricting ourselves to use these registers only as this will be more convenient.

Apart from ADC Global Data register there are more 8 ADC Data registers (one Data register per ADC channel). DONE and OVERRUN bits for each channel can be monitored separately from the bits present in ADC Status register.

One can use the A/D Global Data Register to read all data from the ADC else use the A/D Channel Data Registers. It is important to use one method consistently because the DONE and OVERRUN flags can otherwise get out of synch between the AD0GDR and the A/D Channel Data Registers, potentially causing erroneous interrupts or DMA activity.


Hardware Connections

ADC WithLCD.jpg

Steps for Configuring ADC

Below are the steps for configuring the LPC1768 ADC.

  1. Configure the GPIO pin for ADC function using PINSEL register.
  2. Enable the CLock to ADC module.
  3. Deselect all the channels and Power on the internal ADC module by setting ADCR.PDN bit.
  4. Select the Particular channel for A/D conversion by setting the corresponding bits in ADCR.SEL
  5. Set the ADCR.START bit for starting the A/D conversion for selected channel.
  6. Wait for the conversion to complete, ADGR.DONE bit will be set once conversion is over.
  7. Read the 12-bit A/D value from ADGR.RESULT.
  8. Use it for further processing or just display on LCD.

Code Examples

Example 1

Here we are going to do the A/D conversion for only ADC[0]. The result of the A/D conversion will be displayed on the LCD.



Using Explore Embedded Libraries

In the above example we discussed how to configure and use the inbuilt LPC1768 ADC.
Now we will see how to use the exploreEmbededd ADC libraries and interface POT,LDR and Temperature Sensor(LM35).
Refer the LCD tutorial for interfacing the 2x16 lcd.

Downloads

Download the complete project folder from the below link: https://codeload.github.com/ExploreEmbedded/Explore-Cortex-M3-LPC1768-Stick-DVB-14001/zip/master




Have a opinion, suggestion , question or feedback about the article let it out here!