Forum: Compiler & IDEs ADC liefgert immer null


von Woeba (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich versuche schon den halben Tag einen Wert aus dem ADC meines
Controllers herauszubekommen. Der Code, den ich angehängt habe, soll
ein zu einem Servo passendes PWM Signal generieren, und zwar in
Abhängigkeit einer Spannung zwischen 0 und 5 Volt an ADC0-Pin (Poti).
Das PWM klappt auch wunderbar, aber nach jeder AD-Wandlung steht immer
0x00 im ADCL und ADCH Register (mit JTAG nachgesehen). Eigendlich
wollte ich den AD-Wander im Free-Running Modus laufen lassen, aber
selbst mit den entsprechenden Zeilen aus dem Wiki für eine
Single-Conversation klappt es nicht. Habe ich irgendein Bit irgendwo
vergessen?
Ach ja:
Atmega16, 16 MHZ, VREF liegt auf 5 Volt, die Spannung am Pin 0, Port A
ist 2,4 Volt.

P.S.: Wie ist denn nun der aktuielle Stand zu dem 16-Bit Register, in
dem der Wert der AD-Wandlung stehl. Müsste das bei einem avr-Gcc 3.4.1
nun ADC oder ADCW heissen?

Vielen Dank schonmal für Eure Mühen. Ich weiss wirklich nicht mehr
weiter :-/

Woeba

von mthomas (Gast)


Lesenswert?

Hab's mglw. uebersehen, aber fehlt nicht ein Einstellung des
ADC-Channels (MUX)?

von Woeba (Gast)


Lesenswert?

Ich will an PortA, Pin 0 messen. Imho müssten dann alle MUX auf 0
bleiben, was Pin0 entspricht....Ich habe aber auch schonmal Pin1
versucht, und MUX0 auf 1 gesetzt.

von Sebastian (Gast)


Lesenswert?

vielleicht liege ich falsch...
der adc brauch irgendwas zwischen 50 und 200 khz
vielleicht solltest du mal den adc prescaler auf einen anderen wert
setzen... z.B. auf 128

von Alex (Gast)


Lesenswert?

ADCSRA |= (1<<ADEN);

von Sebastian (Gast)


Lesenswert?

oder
ADCSRA=(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN);

durch die zuweisung mit '=' hast du den prescaler gleich wieder
gelöscht/überschrieben

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.