[LPC1K-SM EVM] LPC1113 ADC테스트
LPC1K는 10비트 ADC(Sample time 2.44 μs)가 있다. VR을 이용하여 ADC값을 그래프로 출력하는 테스트 예제를 작성해 보았다.
LPC1113 ADC초기화
ADC Read함수
LPC1113 ADC테스트 예제 코드
LPC1K 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);
}
{
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));
}
{
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;
}
{
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테스트 동영상
반응형