AD-Wandler

Gast #72622
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
Gast #72623
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.
Gast #72624
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
Gast #72625
@ 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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.