본문 바로가기

[NXP]/LPC2K

[LPC211x EVM] LPC2000 ADC테스트

[LPC211x EVM] LPC2000 ADC테스트




ADC0로 이력되는 ADC값을 시리얼 포트로 출력하는 예제 작성
 
 
 
 
 
 
LPC2114에는 ADC관련 레지스터는 ADCR, ADDR 만 알면 쉽게 제어 된다.
ADDR의 6~15비트가 10비트의 AD값을 저장하고 있어 ADC값을 가져 올때 아래와 같이
 
    ad_result = (ADDR>> 6) &  0x3ff;
 
ADC값을 읽어올 수 있다.
 
 
 
ADC관련 레지스터



 

 

  

LPC 2000 ADC예제 소스 코드


void AD_initial()
{
  ADCR_bit.SEL = 1;      // AD0 select
  ADCR_bit.CLKDIV = 5;   
  ADCR_bit.BURST = 1;    // put A/D into continuous convert mode
  ADCR_bit.PDN = 1;
}

unsigned int AdcRead(unsigned int Channel)
{
    ADCR_bit.SEL = 0x01 << Channel;
   
    // AD START
    ADCR_bit.START = 1;  

    while(!ADDR_bit.DONE);
   
    // AD STOP
    ADCR_bit.START = 0;  
    
    return ((ADDR >> 6) &  0x3ff);
}

void main(void)
{
  unsigned int ad_result = 0;
 
  HW_init();
  Uart0Init();
 
  //ADC초기화
  AD_initial();
 
  Uart0Puts("LPC2000 ARM ADC Test Program\r\n");


  while(1)
  {
    //ADC Read
    ad_result = AdcRead(0);
   
    printf("ADC = %d\r\n", ad_result);

    Delay(500000);
  }
}


반응형