Hi,
ich klemme grad am ADC eines m644p. Er misst zwar, aber nur nach einem
Reset. Wenn ich zwischendrin die Spannung verstelle, ändert sich der
Wert erst nach einem Reset.
Hier mal mein Code:
1 | ADMUX &= ~(1<<REFS0)|~(1<<REFS1); // clear bits REFS0, REFS1 == AREF, int Vref off
|
2 | ADMUX &= ~(1<<MUX0)|~(1<<MUX1)|~(1<<MUX2)|~(1<<MUX3)|~(1<<MUX4); // single ended input ADC0
|
3 | ADCSRA |= (1<<ADEN)|(1<<ADPS0)|(1<<ADPS1)|(1<<ADPS2); // adc enable, prescaler 128 ==> 16mhz/128 = 0.125mhz sample rate
|
4 | ADCSRA |= (1<<ADSC); // start conversion
|
5 | while(ADCSRA & (1<<ADSC)); // wait for conversion to complete
|
6 | return ADCL;
|
Was mich auch wundert, ich habe vor dem ADC Eingang einen 1:10
Spannugsteiler, AREF = 5V. 0xff bekomme ich bei 14,1V Am Eingang des
Spannungsteilers heraus... Ist jetzt aber nich so wichtig, der ADC an
sich sollte eher funktionieren :)
Ich hoffe, dass ihr mir hier helfen könnt.