Also zuerst sehe ich in deinem Code, das du ADFR (=ADATE) gesetzt hast.
Du willst also anscheinen den ADC im "Free Running Mode" laufen
lassen. Dazu mußt doch jedoch die Trigger Quelle im SFIOR Register
richtig auswählen.
Ich selber habe mit frei laufenden ADC bisher keine so guten
Erfahrungen gemacht. Deshalb starte ich den ADC immer "von Hand"
(sprich ADFR=0)
Weiterhin sehe ich das du das erst die ADC Wandlung startest und dann
erst ADMUX setzt. Das ist GIFT für den ADC. Man muß es andersherum
machen.
Nach dem Setzen von ADMUX hat es sich als praktisch erwiesen vor der
wirklichen Wandlung erst noch eine Dummywandlung durchzuführen (deren
Ergebniss dann verworfen wird).
Weiterhin mußt du abwarten ob der ADC schon fertig ist bevor du
ausließt.
Das prüfe ich immer damit ob das ADIF bit in ADCSRA gesetzt ist.
Da du weder das ADIE bit gesetzt hast noch den ADC Interuptvector
gesetzt hast ist das "SEI" auch überflüssig.
cu
Hauke
P.S. der Code ist noch nicht getestet und deshalb ohne Gewähr