SOOOOOOOOOOOOO,

ich hab das Problem gefunden! Ich lese an vier Stellen das ADCH ei´n (left adjusted). Das funktioniert ohne Interrupt über das ADC Flag Bit 4. Also in einer Schleife:

kanal0:
in tmp,ADCSRA
sbrs tmp,4
rjmp kanal0
in k0,ADCH

Der Gag ist, dass dieses Bit irgendwie nicht wie üblich automatisch gelöscht wird und das Program deshalb Sinnlos durchrennt. Das löscht sich nichtmal, wenn ich ADCSRA manuell mit NULL beschreibe.
Kann es sein, dass ich hier einem Vista Problem aufsitzte? Im Dec C++ Compiler hatte ich das auch schon...