Gast
#5204151
Hallo,
bin ich richtig der Annahme das ich mit folgenden Code eine 2,56V an Pin
21 meines Atmega8 gegen GND messen müsste?
uint16_t readADC(uint8_t channel)
{
uint8_t i;
uint16_t result = 0;
// Den ADC aktivieren und Teilungsfaktor auf 128 stellen
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
// Kanal des Multiplexers waehlen
// AREF Verwenden
ADMUX = channel | (1<<REFS0)| (1<<REFS1);
// Den ADC initialisieren und einen sog. Dummyreadout machen
ADCSRA |= (1<<ADSC);
while(ADCSRA & (1<<ADSC));
// Jetzt 3x die analoge Spannung and Kanal channel auslesen
// und dann Durchschnittswert ausrechnen.
for(i=0; i<3; i++) {
// Eine Wandlung
ADCSRA |= (1<<ADSC);
// Auf Ergebnis warten...
while(ADCSRA & (1<<ADSC));
result += ADCW;
}
// ADC wieder deaktivieren
ADCSRA &= ~(1<<ADEN);
result /= 3;
return result;
}
AREF (pin 21) hängt mit nen 100nF Kondensator gegen Masse.
Ich messe 0V an den Pin... Aber Warum?