Hallo Steffen,

dein Code ist etwas unübersichtlich und nicht sehr effektiv.

Ich würde es etwa so machen: (bitte nicht auf die Syntax achten)

For i = 0 To 7 (Schleife für 8 ADC-Eingänge)

Summe(i) = 0 (löschen)

For n = 0 to 15 (Schleife für 16faches oversampling)

Summe(i) =Summe(i)+ GetADC(i)

next n

Zwölfbitwert(i)=Summe(i)/4 (oder "shift right 2")

next (I)


Im Feld "Zwölfbitwert(i)" hast du dann die Ergebnisse aller Eingänge mit 12bit Auflösung, also 4096 Schritten,

alles weiter hängt davon ab, was du damit machen willst.

Gruß, Rene