Hallo
Durch
ADMUX |= (1 << ADLAR); // Left shift ADC result
wird bestimmt, dass das 10-bitige Ergebnis der Wandlung linksbündig im 16-Bit ADC-Register gespeichert wird. Deshalb findet man die MSB (=most significant bites -> http://de.wikipedia.org/wiki/Bitwertigkeit) im Highbyte ADCH. Und da dies nur 8 Bit besitzt, geht der Bereich von 0 bis 255. Die Formel zur Berechnung der Spannung lautet
Referenzspannung / Auflösung des ADC * Messwert
Wenn du linksbündig wandelst und nur ADCH auswertest ist die Auflösung 255. Die gemessene Spannung muss immer kleiner als die Referenzspannung sein. Wenn die Akkuspannung ohne Spannungsregler den AVR versorgt ist sie als Referenz nicht geeignet.
Gruß
mic
Lesezeichen