
Zitat von
mare_crisium
...
2. ... Bei 10-Bit-Wandlung immer erst ADCL, dann ADCH auslesen (Abs 2, S.19

. ...
Das Datenblattgerechte Auslesen sollte der Compiler erledigen. Auszug aus meiner *.lls :
Code:
adc3_sum = adc3_sum + ADC; // ADC-Werte aufsummieren
8aa: 80 91 db 01 lds r24, 0x01DB
8ae: 90 91 dc 01 lds r25, 0x01DC
8b2: 20 91 78 00 lds r18, 0x0078
8b6: 30 91 79 00 lds r19, 0x0079
8ba: 82 0f add r24, r18
8bc: 93 1f adc r25, r19
8be: 90 93 dc 01 sts 0x01DC, r25
8c2: 80 93 db 01 sts 0x01DB, r24
Es wird also zuerst 0x0078, das lowbyte und danach 0x0079 gelesen.
Ich dachte (was man so alles denkt - *kopfschüttel*) ich hätte irgendwann irgendwo gelesen, dass das erste Ergebnis nach dem Umschalten von einem ADC-Kanal auf den anderen von zweifelhafter Güte ist. Leider weiss ich die Quelle nicht mehr. Daher hatte ich das oben nicht erwähnt.
Lesezeichen