Hallo,
ich habe hier eine Platine mit mega168PA TQFP, auf der ADC6 und ADC7 zum
messen der Versorgungsspannung und des Stroms verwendet wird.
Nun versuche ich dafür selber Code zu schreiben und bekomme immer 0x3ff
heraus.
Die UART-Debug-Ausgabe und alles weitere läuft.
1 | uint16_t adc_read() {
|
2 | ADMUX |= (1<<MUX1)|(1<<MUX2); // ADC6
|
3 | ADCSRA |= (1<<ADSC);
|
4 | while (ADCSRA & (1<<ADSC) ) {
|
5 | asm("nop");
|
6 | }
|
7 | return ADCW;
|
8 | }
|
9 |
|
10 |
|
11 | void adc_init() {
|
12 | ADMUX = 0; // external reference
|
13 | ADCSRA = 0; // no prescaler
|
14 | ADCSRA |= (1<<ADEN);
|
15 |
|
16 | ADCSRA |= (1<<ADSC); // dumy read
|
17 | while(ADCSRA & (1<<ADSC)) {
|
18 | asm("nop");
|
19 | }
|
20 | uint8_t temp = ADCW;
|
21 | }
|
Die Referenz ist 1,235V (extern). Wenn ich nun 1.1V (Vbg) (MUX1,2,3=1)
versuche zu bekommen, dann kommt da auch 0x3ff heraus.
Ich hoffe, mir kann jemand einen Tipp geben, was ich falsch mache...