Hallo zusammen,
ich habe irgendwie ein eigenartiges Problem. Ich konvertiere am ADC0 am
Atmega328 (16Mhz) eine Spannung. Die Spannung ist aktuell etwa 4,9V. Ich
nehme als Referenzwert AVCC an welchem 5V anliegt.
Der ADC wird folgenderweise initalisiert:
1 | ADMUX = (1<<REFS0);
|
2 | ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN);
|
Ausgelesen wird der Wert:
1 | ADMUX = (ADMUX & 0xF0) | (0 & 0x0F);
|
2 | ADCSRA |= (1<<ADSC);
|
3 | // wait until ADC conversion is complete
|
4 | while( ADCSRA & (1<<ADSC) );
|
5 | return ADC;
|
Nun erhalte ich aber einen Wert von 17500. Das kann doch absolut nicht
sein. Weil es doch ein 10Bit ADC ist, also maximal 1023.
Hatte das jemand schon einmal und eine Idee?
Viele Grüße und Danke,
Niine