In Deiner Read Routine fehlt das Semikolon hinter der while Schleife! Du liest vier mal einen ungültigen Wert ein.
Kleiner Tip: Bei if's und Schleifenkonstrukten verwende ich immer einen Block dahinter, das spart die Fehlersuche und Kollegen die mit Deinem Code arbeiten müssen werden es Dir danken.
Code:while( ADCSRA & (1<<ADSC) ) { ; // wait until conversion complete } result += ADCH;
Lesezeichen