[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);
}
}
반응형