[AT90USB1287-EX] 기본 테스트 - ADC (광센서 테스트)
[AT90USB1287-EX] 보드에는 ADC를 테스트 할 수 있는 CdS센서가 ADC2에 연결되어 있다.
AT90USB1287의 ADC는 확장포트 CN36에 모두 연결되어 있으므로 기타 ADC나 GPIO로 사용가능하다.
AT90USB1287 ADC 드라이버 코드
ATMega128과 다르게 ADCSR레지스터 명이 다르므로 수정이 필요하다.
AT90USB1287 ADC 테스트 예제 소스 코드
[AT90USB1287-EX] 보드에는 ADC를 테스트 할 수 있는 CdS센서가 ADC2에 연결되어 있다.
AT90USB1287의 ADC는 확장포트 CN36에 모두 연결되어 있으므로 기타 ADC나 GPIO로 사용가능하다.
AT90USB1287 ADC 드라이버 코드
ATMega128과 다르게 ADCSR레지스터 명이 다르므로 수정이 필요하다.
//Read ADC Value
unsigned int AdcRead(unsigned char port)
{
unsigned int value = 0;
ADMUX = port&7;
ADC_SR |= ADC_START_CONVERSION;
while(!(ADC_SR & ADC_COMPLETE));
value = ADCL;
value = (ADCH<<8) | value;
return value;
}
unsigned int AdcRead(unsigned char port)
{
unsigned int value = 0;
ADMUX = port&7;
ADC_SR |= ADC_START_CONVERSION;
while(!(ADC_SR & ADC_COMPLETE));
value = ADCL;
value = (ADCH<<8) | value;
return value;
}
AT90USB1287 ADC 테스트 예제 소스 코드
#include "system.h"
#include "serial.h"
#include "adc.h"
int main(void)
{
//시스템 초기화
SystemInit();
//LED포트 초기화
Led1Init();
Led1On();
Led2Init();
Led2On();
//UART Init
DebugInit(BAUD_57600);
DebugPrint("[AT90USB1287-EX] Test Program - ADC\r\n");
//ADC 초기화
AdcInit();
while(1)
{
DebugPrint("ADC=%d\r\n", AdcRead(2));
Delay(100);
}
}
#include "serial.h"
#include "adc.h"
int main(void)
{
//시스템 초기화
SystemInit();
//LED포트 초기화
Led1Init();
Led1On();
Led2Init();
Led2On();
//UART Init
DebugInit(BAUD_57600);
DebugPrint("[AT90USB1287-EX] Test Program - ADC\r\n");
//ADC 초기화
AdcInit();
while(1)
{
DebugPrint("ADC=%d\r\n", AdcRead(2));
Delay(100);
}
}
반응형