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
Hab's mglw. uebersehen, aber fehlt nicht ein Einstellung des ADC-Channels (MUX)?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.