mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AD-Wandler


Autor: Dr. K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Ich arbeite mit dem ATmega128 und möchte den AD-Wandler dieses
Controllers ansteuern um sechs verschiedene Werte einzulesen. Leider
habe ich es noch nicht geschafft den Wandler so zu intitialisieren,
dass er mir auch nur einen Wert ausspuckt. Ich arbeite mit JTAG, d.h.
ich kann den Ablauf realtime verfolgen. Ich initialisiere ihn wie
folgt:

prescaler 64 (8MHz osz)
enable free running
set MUX
enable ADC
start conversion
wait until complete, ADIF
read ADCL
reasd ADCH

Habe ich etwas vergessen? Hat jemand von euch Erfahrung mit dem Wandler
der AVR's? Falls ja, wie initialisiert ihr das Ding?

Danke

Autor: Dr. No (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int hole_ad(char kanal)  // ca. 5mV pro Bit absolut
{
  ADCSR = 0x86;    /* enable + %64-Vorteiler */
  ADMUX = kanal;
  ADCSR |= 0x40;  /* start ad */
  while(ADCSR & 0x40);  /* warten */
  return(ADC);
}

z.B. so.

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe bei einem anderen AVR (4433) erlebt, dass im Gegensatz zum
Datenblatt es doch auf die Reihenfolge des Auslesens (ADCL bzw. ~H)
ankommt, hat mich wahnsinnig gemacht. Einfach mal ausprobieren!
mfg
Frank

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Frank

im Datenblatt des 4433 steht doch eindeutig, daß ADCL vor ADCH
ausgelesen werden muß.

"When reading data, ADCL must be read first. Once ADCL is read, ADC
access to Data Registers is blocked. This means that if ADCL has been
read and a conversion completes before ADCH is read, none of the
registers are updated and the result from the conversion is lost. When
ADCH is read, ADC access to the ADCH and ADCL Registers is
re-enabled."

Gruß
Markus

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Markus

...grrr, hast ja recht!

Gruß
Frank

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.