 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		|  #include "LPC17xx.H"
void adc_init()
{
  LPC_SC->PCONP |= (1 << 12); //set PCADC for power on ADC ;
  LPC_ADC->ADCR |= (1 << 21);  // start adc
  LPC_PINCON->PINSEL1 &= ~0x003FC000; /* P0.23~26, A0.0~3, function 01 */
  LPC_PINCON->PINSEL1 |= 0x00154000;
  LPC_PINCON->PINMODE1 &= ~0x003FC000;
  LPC_PINCON->PINMODE1 |= 0x002A8000;
}
int ADCRead(char channelNum) {
int data;
  LPC_ADC->ADCR &= 0xFFFFFF00;  // clear channels
  LPC_ADC->ADCR |= (1 << 24) | (1 << channelNum);  // set chanel and start convert
  while (!(LPC_ADC->ADGDR & (1<<31)));    //wait to done
  data = LPC_ADC->ADDR7;
  LPC_ADC->ADCR &= 0xF8FFFFFF;  /* stop ADC now */ 
  data = ( data >> 4 ) & 0xFFF;
  return ( data );  /* return A/D conversion value */
} | 
| /*------------------------------------------------------------------------------- www.ECA.ir LPC1768 Dev Board Rev.A --------------------------------------------------------------------------------*/ #include <LPC17xx.h> #include <stdio.h> #include "uart.h" #include "adc.h" void Delay (uint32_t Time) { uint32_t i; i = 0; while (Time--) { for (i = 0; i < 5000; i++); } } int main(void) { volatile int i=0; unsigned char lcd_buf[32]; SystemInit(); adc_init(); UART0_Init(); while (1) { i++; sprintf(lcd_buf,"AnalogRead(%d)(A0): %d\r\n\n",i,ADCRead(0)); UART0_SendString(lcd_buf); Delay(2000); } } | 
 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		| 
    data = LPC_ADC->ADGDR;
    while(!(data >> 31)) /* test the DONE bit, which is bit 31 */
    {
        data = LPC_ADC->ADGDR;
    }
    return(0xfff & (data >> 4));
 | 
 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		| while(!(dr >> 1)) | 
 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		| while (!(LPC_ADC->ADGDR & (1<<31))); //wait to done data = LPC_ADC->ADDR7; | 
| data = LPC_ADC->ADGDR;
while(!(dr >> 1))
{
    data = LPC_ADC->ADGDR;
}
return(0xfff &(data >> 4)); | 
 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		| /*------------------------------------------------------------------------------- www.ECA.ir LPC1768 Dev Board Rev.A --------------------------------------------------------------------------------*/ #include <lpc17xx.h> main(){ int a; SystemInit(); LPC_GPIO2->FIODIR = 0xfff; LPC_PINCON->PINSEL3 |= (3UL<<30); /* P1.31 is AD0.5 */ LPC_SC->PCONP |= (1<<12); /* Enable power to ADC block */ LPC_ADC->ADCR = (1<< 5) | /* select AD0.5 pin */ (4<< 8) | /* ADC clock is 25MHz/5 */ (1<<21); /* enable ADC */ while(1){ LPC_ADC->ADCR &= ~(7<<24); /* stop conversion */ LPC_ADC->ADCR |= (1<<24); /* start conversion */ while (!(LPC_ADC->ADGDR & (1UL<<31))); /* Wait for Conversion end */ a = (LPC_ADC->ADGDR>>4 & 0xfff); LPC_GPIO2->FIOPIN = a>>4; } } | 
