본문 바로가기

[AVR]/AT90USB

[AT90USB1287-EX] 기본 테스트 - ADC (광센서 테스트)

[AT90USB1287-EX] 기본 테스트 - 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;
}



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);
 }
}


반응형