ADC für Single und Free Run

Gast #7807
Lesenswert?
• ▲
▼
Hallo Erwin !
Ich hab mal eine Frage bezüglich Freerunnig und Single Conversion.
Mein Problem ist folgendes. Auf einem Kanal lese ich ständig Werte ein 
(im freerunning Modus). Jetzt will ich aber zwischendurch kurz einen 
anderen Kanal einmalig einlesen.
Muss ich das im Single mode machen ?
Weil ich brauch nur einen Wert.
Oder soll ich beides im freerunning machen ?

Ist der Wechsel zwischen freerunnig und Singleconversion ohne Probleme 
möglich ?

Besten Dank im Vorraus

ein Hoch das es dieses Forum gibt !

Tschüssikowski  --Frank
Gast #7808
Lesenswert?
• ▲
▼
Hallo, habe lange nicht ins Forum geschaut.
Es reicht, wenn Du am Anfang den Freerun Modus einstellst -- es gibt 
auch einen Hinweis auf meinem AD_Code.

Also in folgender Reihenfolge:

Vorteiler einstellen -- Siehe Code
AD-Wandler einschalten -- set ADEN
Free Run oder Single Run auswählen

set ADFR für FreeRun

Wandlung starten -- set ADSC

und nun die Schleife beginnen

ADMUX einstellen
lesen - auswerten            LowByte zuerst
ADMUX verändern
lesen - auswerten
usw.

Für Single Wandlung geht es auch so:

ADMUX einstellen
AD Einschalten             set ADSC
ADIF prüfen, ob fertig
Lesen - Auswertem

ADMUX neu
Einschalten usw..
Gast #7809
Lesenswert?
• ▲
▼
Hallo. Hab ein kleines Problem. Arbeite zum ersten mal mit dem AVR
Atmega8 und möchte über den ADC0 Eingang eine Spannung einlesen und
über 7-SegmentAnzeige ausgeben lassen. Spannung kommt am Eingang an und
ich denke das der ADC im frei laufenden Betrrieb läuft, aber er spuckt
komische Zahlen auf der Anzeige aus. Meine MEinung ist, dass es an der
Ergebnisroutine liegt. Wenn wir in meine VAriable "value" einen Wert
definieren rechnet er den entsprechenden Wert aus und gitb ihn auch
richtig auf der Anzeige aus. Aber wenn er sich die Werte über den
Eingang ADC0 holen soll und diese dann in ADCL und ADCH reinschreibt
kommt nur Null raus. Kannst du mir vielleicht helfen?
Angehängte Dateien:
Gast #7810
Lesenswert?
• ▲
▼
Hey, rihhtiger Freak bin ich ja auch nicht, aber wenn nicht mehr
Programm arbeitet, als in besser.c, dann wird ja für deinen ADC nie der
Interrupt freigegeben?! ACSR (ACIE=Bit3)ist 0 statt 1 !
Damit bleibt dann einer, was es ist.

Antwort schreiben

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.

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.