[ATMega16-SM EVM] ADC 테스트 - TFT LCD 그래프 표시
ATMega16-SM EVM 보드에서 ADC포트는 PORTA PA7~PA0(ADC7~ADC0)에 연결되어 있고 가변저항으로 ADC값을 확인할 수 있다.
AVR ATMega16 ADC 드라이버 코드
ATMega32 의 경우 ADCSR레지스터가 ADCSRA로 변경되었다.
// Function Routine
//ADC Initialize
void AdcInit(void)
{
ADMUX = 0;
ADCSR = ADC_ENABLE | ADC_PRESCALE_DIV32;
}
//Read ADC Value
unsigned int AdcRead(unsigned char port)
{
unsigned int value = 0;
ADMUX = port&7;
ADCSR |= ADC_START_CONVERSION;
while(!(ADCSR & ADC_COMPLETE));
value = ADCL;
value = (ADCH<<8) | value;
return value;
}
//------------------------------------------------------------------------------
AVR ATMega16 ADC 테스트 예제코드
int main(void)
{
char c;
unsigned int adc;
unsigned char buf[8];
SystemInit();
Led1Init();
Led1On();
//UART Init
DebugInit(BAUD_115200);
DebugPrint("ADC Test Program\r\n");
AdcInit();
while(1)
{
adc = AdcRead(7);
buf[0] = (adc>>8);
buf[1] = (adc&0xFF);
adc = AdcRead(6);
buf[2] = (adc>>8);
buf[3] = (adc&0xFF);
SendPacket(SRL_CMD_PLOTY, buf, 4);
Delay(20);
}
}
AtMega32 ADC 테스트 동영상 - TFT LCD그래프 표시