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
Lesezeichen