Hi,

sollte eigentlich so stimmen. Versuch doch mal das ganze folgendermaßen zu ändern:

Code:
void read_inputs(void) {
	ADMUX	=	0x02;					// Kanal 0 auswaehlen
	ADCSRA	|=	(1<<ADSC);				// Messung starten
	while(!(ADCSRA & (1<<ADIF)));		// Warten bis ADSC==0
	ADCSRA	|=	(1<<ADIF);				// ADIF auf Null setzen !?!
	rohsollwert	=	ADCL;		// Ergebnis auslesen
	rohsollwert	|=	(ADCH<<8);
	sollwert	=	rohsollwert/1023.0*100;		// In Prozent umrechnen
	
	ADMUX	=	0x01;					// Kanal 1 auswaehlen
	ADCSRA	|=	(1<<ADSC);				// Messung starten
	while(!(ADCSRA & (1<<ADIF)));		// Warten bis ADSC==0
	ADCSRA	|=	(1<<ADIF);				// ADIF auf Null setzen !?!
	rohistwertx	=	ADCL;		// Ergebnis auslesen
	rohistwertx	|=	(ADCH<<8);
	istwertx	=	rohistwertx/1023.0*100;		// In Prozent umrechnen
	
	ADMUX	=	0x00;					// Kanal 2 auswaehlen
	ADCSRA	|=	(1<<ADSC);				// Messung starten
	while(!(ADCSRA & (1<<ADIF)));		// Warten bis ADSC==0
	ADCSRA	|=	(1<<ADIF);				// ADIF auf Null setzen !?!
	rohistwerty	=	ADCL;		// Ergebnis auslesen
	rohistwerty	|=	(ADCH<<8);
	istwerty	=	rohistwerty/1023.0*100;		// In Prozent umrechnen
}
Ansonsten hätte ich auch keine Idee woran es liegen könnte...

MfG Kjion