Hallo,
der Compiler grenzt den Fehler eindeutig auf die Zeile 73 ein, also diese hier:
Anstatt "uint8_t x" muss natürlich die Nummer des zu messenden Analogeingangs stehen. So hast du es doch auch in adc_read drin!?Code:messung = adc_read(uint8_t x);
Die if-Bedingung mit <=1 wird im Testaufbau vermutlich kaum erreicht, der Rückgabewert von adc_read liegt im Bereich 0...1023. Unter 1 ist recht unwahrscheinlich, da können schon kleinste Offsetfehler das Zünglein an der Waage sein.
Solche Konstrukte sind zwar korrekt, lassen sich jedoch nachträglich schwer nachvollziehen und sind meist nicht portierbar:
Lieber an der Stelle die Bits angeben: (1<<deinbit) und bei Bedarf ver-oder-n.Code:ADMUX = 0xC0; ADCSRA = 0x80; //ADC aktivieren, Rest 0 setzen ADCSRA |= 0x05; //Vorteiler 32 ADCSRA |= (1<<6); //Konvertierung starten
*Hust* http://diyundso.de/?page=6
Grüße, Bernhard
Lesezeichen