|
|
(14 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | [[category: ARM Tutorials]] | + | #REDIRECT [[LPC1768: ADC Programming]] |
− | [[User:Amruta|Amruta]] ([[User talk:Amruta|talk]]) 13:28, 17 March 2015 (IST)
| + | |
− | ----
| + | |
− | =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 )=====
| + | |
− | {| class="wikitable" style="text-align:center; background-color:#ABCDEF;margin: 1em auto 1em auto"
| + | |
− | !colspan = '9'|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 )=====
| + | |
− | =====ADSTAT ( ADC Status Register )=====
| + | |
− | | + | |
− | =Schematic=
| + | |
− | =Code=
| + | |
− | <syntaxhighlight>
| + | |
− | /*-----------------------------------------------------------------------------
| + | |
− | 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);
| + | |
− | }
| + | |
− | }
| + | |
− | | + | |
− | </syntaxhighlight>
| + | |
− | {{DISQUS}}
| + | |