Hi,
sollte eigentlich so stimmen. Versuch doch mal das ganze folgendermaßen zu ändern:
Ansonsten hätte ich auch keine Idee woran es liegen könnte...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 }
MfG Kjion







Zitieren

Lesezeichen