Hei Basti,

bin auch kein Pascaller, das macht das Verstehen etwas zäh.

Eins kann ich mir vorstellen: du startest in deinem Code erst die Konvertierung (ADCSRA) und weist dann den Multiplexer zu. Da die Konvertierung schon läuft, wird der zugewiesene Kanal erst für den nächsten Durchlauf verwendet, d. h. deine Kanäle sind alle um eins verschoben. So ein Hinweis findet sich jedenfalls im Handbuch (ATMega 8, S. 203: Bits 3:0 – MUX3:0: Analog Channel Selection Bits; The value of these bits selects which analog inputs are connected to the ADC. See Table 75 for details. If these bits are changed during a conversion, the change will not go in effect until this conversion is complete (ADIF in ADCSRA is set).).

Versuch doch mal, erst den Kanal zuzuweisen und dann den ADCSRA auf 0xCC zu setzen. Ein ähnliches Problem hatte ich auch mal, allerdings mit freifliegender Konvertierung.

Viel Erfolg,
Rakke