본문 바로가기

[NXP]/LPC1k

[LPC1K-SM EVM] LPC1113 ADC테스트

[LPC1K-SM EVM] LPC1113 ADC테스트



LPC1K는 10비트 ADC(Sample time 2.44 μs)가 있다. VR을 이용하여 ADC값을 그래프로 출력하는 테스트 예제를 작성해 보았다.

LPC1113 ADC초기화
void AdcInit(unsigned int AD_Chan)
{
    unsigned long reg;
    unsigned char CLKDIV;

    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<13);
    CLKDIV = (uint8_t)ceil((double)SystemCoreClock/(double)4500000);
    reg = AD_Chan;
   
    InitAdcPort(AD_Chan);
   
    //ADC Clock 
    reg |= (CLKDIV << 8);
   
    LPC_ADC->CR = reg;
    LPC_ADC->INTEN = 0xFF & AD_Chan;
   
 LPC_ADC->CR |= (1 << 24);   
   
//    NVIC_EnableIRQ(ADC_IRQn);
}


ADC Read함수
unsigned int AdcRead(unsigned char port)
{
    return (0x3FF & (LPC_ADC->DR[port] >> 6));
}


LPC1113 ADC테스트 예제 코드
int main()
{
 unsigned int adc_value = 0;
 
    SystemInit();

    U0_Init(BAUD_115200);
    DebugPrint("LPC1K ADC Test\r\n");
   
    Led1Init();
    Led1On();

 //ADC 초기화
 AdcInit(BIT0);    

    while(1)
    {
  //LPC1K ADC Polling
  adc_value = AdcRead(BIT0);
  DebugPrint("%d\r\n", adc_value);
  Delay(10); 
 }
    
    return 0;
}


LPC1K ADC테스트 동영상
반응형