Forum: Mikrocontroller und Digitale Elektronik A/D Wandlung, Ergebnis immer 0


von Sören D. (Gast)


Lesenswert?

Hallo !

Ich versuche seit mehreren Stunden eine A/D Wandlung (ATtiny25) durch zu 
führen ! Leider hatte ich bisher keinen Erfolg.
Mein Codeschnipsel:



/* ADC */
outp(0x00, DDRB);

unsigned char sADCH = 0;
unsigned char sADCL = 0;
unsigned short sRES = 0;
unsigned char SlotID = 0;

ADCSRA = (1<<ADPS0) | (1<<ADPS1) | (1<<ADPS2) | (1<<ADEN);
ADMUX  = (1<<MUX1);
ADCSRA = (1<<ADSC);
while ( ADCSRA & (1<<ADSC) ) {
     ;
  }
sADCL = inp(ADCL);
sADCH = inp(ADCH);
sRES = sADCL + sADCH * 256;




Egal welche Spannung ich nun an PB4(ADC2) anlege, sRES ist immer gleich 
0 !
Ich hoffe das mir von euch jemand sagen kann, was ich falsch mache !

S.Dierking

von Εrnst B. (ernst)


Lesenswert?

Ersetze die letzte Zeile durch:

sRES=ADC;

lösche alle Zeilen, in denen sADCL oder sADCH vorkommt.

von MWS (Gast)


Lesenswert?

1
ADCSRA = (1<<ADSC);

Zweite Zuweisung zu ADCSRA löscht Erste, richtig wäre es so:
1
ADCSRA |= (1<<ADSC);

von Sören D. (tweety955)


Lesenswert?

Vielen dank ! Funktioniert nun !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.