In meiner init():
Und diese Funktion wird in main() zyklisch aufgerufen:Code:ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(0<<ADPS0);
Der ATmega16 laeuft mit 8MHz. Das mit dem ADIF auf Null setzen, indem man ne Eins reinschreibt, steht so im Datenblatt...Code:void read_inputs(void) { ADMUX=(1<<MUX0); // Kanal 1 auswaehlen ADCSRA|=(1<<ADSC); // Messung starten while(!(ADCSRA & (1<<ADIF))); // Warten bis ADSC==0 ADCSRA|=(1<<ADIF); // ADIF auf Null setzen !?! w=ADCL+ADCH*256; // Ergebnis auslesen ADMUX=(1<<MUX2)|(1<<MUX0); // Kanal 5 auswaehlen ADCSRA|=(1<<ADSC); // Messung starten while(!(ADCSRA & (1<<ADIF))); // Warten bis ADSC==0 ADCSRA|=(1<<ADIF); // ADIF auf Null setzen !?! x=ADCL+ADCH*256; // Ergebnis auslesen }
Nils







Zitieren

Lesezeichen