Ganz klar ist mir dieses Programm nicht.
Was soll das SREG sichern, lass das den Compiler machen, der weiss was er tut.
Was setzt du hier zurück? ADCSRA |= (1<<ADIF); //clear interrupt Flag again
Warum verwendest du nicht den Interrupt für den ADC.
Geringe Schwankungen gleicht man aus indem man mehrmals misst und den Mittelwert bildet.
Einen Transistor über 100 Ohm anschalten bedeutet, das dort schlagartig 40mA fließen. Das tut der Stromversorgung des ADC-Port sicher nicht gut.
Lesezeichen