mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AtMega AD-Wandler Problem


Autor: Thomas Neger-Loibner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
bin noch ein ziemlicher Anfänger der Mikrocontrollerprogrammierung und 
versuche gerade eine einfache AD-Wandlung mit dem AtMega328 
hinzubekommen.

Habe jetz laut Datenblatt den Wandler konfiguriert, doch aus irgendeinem 
Grund erhalte ich als Ausgabewert nur 1023 obwohl ich schon widerstände, 
piezo-sensoren und fixspannungen am eingang angelegt habe!

Vermute also einen fehler im code!
Wär nett wenn ihr mir helfen könnten! DANKE im voraus!
  //AD - Wandler Init
  ADCSRA |= (1<<ADIE);    //Interrupt bei neuem Wert
  DIDR0 |= (1<<ADC0D);    //Digitale Funktion des Pins deaktivieren
  ADMUX |= (1<<MUX0);      //AD1 als Eingang
  ADCSRA |= (1<<ADEN);    //Wandler aktivieren

  //Wandlung wird alle 800ms gestartet!
  ADCSRA |= (1<<ADSC);    //Wandlung starten

  ISR(ADC_vect)
 {
    valuePiezo = (ADCH<<8)+ADCL;
    newValue = true;
 }

lg Thomas

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast du als Referenzspannung eingestellt?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe zusätzlich gar nichts eingestellt, aber als default-wert ist ja 0V 
eingestellt, oder nicht?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:
> Habe zusätzlich gar nichts eingestellt, aber als default-wert ist ja 0V
> eingestellt, oder nicht?

Und was erwartest du dann?

Dann wirst du mit so ziemlich jeder Spannung, die du am ADC einstellst, 
den ADC in den Overflow treiben, wenn du festlegst, dass der Maximalwert 
für den du noch einen vernünftigen Wert vom ADC (1023) haben möchtest, 
0V sein soll.

Die Referenzspannung ist jene Spannung, für die der ADC mit 1023 
antworten soll. Deine zu messende Spannung muss sich zwischen 0 und 
dieser Spannung bewegen, damit du vom ADC vernünftige Wetre bekommst.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man beim Register ADMUX nichts extra einstellt, wird AREF als 
Referenzsspannung herangezogen. Habe nun versucht, am AREF Pin 5V und 
auch 0V anzulegen, beides ohne Erfolg. Erhalte aber immer noch 1023 als 
Wert, obwohl meine zumessende Spannung bei 2V liegt!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:
> Wenn man beim Register ADMUX nichts extra einstellt, wird AREF als
> Referenzsspannung herangezogen. Habe nun versucht, am AREF Pin 5V und
> auch 0V anzulegen, beides ohne Erfolg. Erhalte aber immer noch 1023 als
> Wert, obwohl meine zumessende Spannung bei 2V liegt!

Ich würde an deiner Stelle erst mal die interne Referenzspannung 
benutzen und mich am ADC Code aus dem Tutorial orientieren
AVR-GCC-Tutorial

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

AVCC angeschlossen?

Dein ADC läuft mit dem vollen Prozessortakt. Stell erst mal den 
Prescaler ein.

MfG Spess

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.