Moin moin!
Ich versuche zwei Werte ueber den ADC eines ATmega16 einzulesen, aber irgendwie klappt's nicht so wie ich will. Beide Kanaele einzeln gehen (Wenn ich den jeweils anderen Block unten auskommentiere). Wenn ich an beiden Kanaelen was anschliesse, gibt's auf x und w (auf beiden gleich) einen Mix der beiden Werte. Mach ich irgendwas falsch? Ich will keine Interrupts verwenden, nur pollen. Muss ich vielleicht trotzdem ADIF auslesen?? Eigentlich muesste doch das Warten auf ADSC==0 reichen?????
Kann jemand helfen?
NilsCode:int main(void) { init(); while(1) { ADMUX=(1<<MUX0); // Kanal 1 auswaehlen ADCSR|=(1<<ADSC); // Messung starten while((ADCSR&ADSC)==1) ; // Warten bis ADSC==0 w=ADCL+ADCH*256; // Ergebnis auslesen ADMUX=(1<<MUX1)|(1<<MUX0); // Kanal 3 auswaehlen ADCSR|=(1<<ADSC); // Messung starten while((ADCSR&ADSC)==1) ; // Warten bis ADSC==0 x=ADCL+ADCH*256; // Ergebnis auslesen print(w,0,x,200); } }
Lesezeichen