PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega32 ADC



lehnin
08.03.2006, 14:51
Ich bräuchte unter C einen Befehl, um die Spannung an einem Pin aus zu lesen.

askazo
08.03.2006, 15:11
Zunächst mal muss der ADC initialisiert werden.
z.B. so:

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:


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