Zitat 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.