Zunächst mal muss der ADC initialisiert werden.
z.B. so:
Code:
void AdcInit()
{
ADMUX = 0xC0;
ADCSR = 0x86;
}
Im ADMUX-Register wird hier die interne Spannungs-Referenz ausgewählt und Kanal 0 (auf PA0) eingestellt. Im ADCSRA-Register wird der ADC enabled und der Teiler für die Sample-Rate des ADC eingestellt.
Dann musst Du den ADC starten und das Ergebnis einlesen:
Code:
unsigned short GetADC(void)
{
unsigned short result;
ADCSR |= 0x40; //Wandlung starten
while (ADCSR & 0x40)
; //warten bis ADC fertig ist
result = (ADCH << 8) + ADCL; //Ergebnis einlesen
return result
}
Gruß,
askazo
Lesezeichen