Zitat Zitat von oberallgeier Beitrag anzeigen
Köstlich. Da teilen wir 5 V durch 256 - oder 255 Teile und erhalten ne Zahl auf ein paar Billionstel genau. Noch dazu, wo im Datenblatt (zumindest in Atmel-42735B-ATmega328/P_Datasheet_Complete-11/2016) steht: ±2 LSB Absolute Accuracy . . . Schön, gut - es geht hier um die Theorie. Aber ich finde so wunderbare Stellenvermehrung einfach - wunderbar - köstlich.
richtig, es geht um die Theorie.
Zäumen wir das Pferd von hinten auf, am Beispiel eines sehr "kleinen" 2-bit ADCs, weil das Prinzip deutlicher hervortritt:

wie schon angemerkt, hat ein 2bit ADC 2² mögliche ADC-Werte (0,1,2,3) mit 3 Messintervallen.
Daher wären die 5V Messspannung durch 3 zu teilen (entsprechend dem höchsten ADC-Wert), in Schritten zu 5/3=1,666

0 -> 0 V
1 -> 1,67 V
2 -> 3,33 V
3 -> 5 V

Würde man hingegen mit 4 Intervallen rechnen, ergäbe sich, in Schritten zu 5/4=1,25:
0 -> 0 V
1 -> 1,25 V
2- > 2,50 V
3 -> (...5 V)
Hier wird deutlich, dass dann der letzte Schritt (das letzte Intervall) zu groß wäre im Vergleich zum Messbereich und zu den anderen Intervallen.

Bei einem 8-bit ADC mit 256 Messwerten in 255 Stufen/Intervallen (entsprechend dem höchsten ADC-Wert) ist dieses Verhalten "analog":
5V durch 255 geteilt ergäbe gleich große Intervalle (steps), durch 256 geteilt entstünde der gleiche Fehler wie oben beim 2-bitter gezeigt.

Daher ist mein schon im 2. Post gezeigter Vorschlag mit 255er Teiler IMO der korrekte, und nicht der mit 256.