www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Free-Running Mode für ADC (ATmega640)


Autor: ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche gerade den ADC eines ATmega640 im free-running mode zu 
betreiben, dazu habe ich ihn so konfiguriert:

  ADMUX=0x40;    // REF=Vcc-Pin
  ADCSRB=0x00;  // FREE-Running Mode
  DIDR0=0x00;
  DIDR2=0x00;
  ADMUX=ADMUX&0xE0;    //Kanal einstellen
  ADMUX=ADMUX|0x00;    //ADC0 (PIN F0)
  ADMUX |= (1 << ADLAR);  //8 MSBits in ADCH Register ("8-Bit Mode")
  ADCSRA=0xC7;  // ADC-Enable, Clk-Frq=125 Khz

allerdings muss ich trotzdem noch Messungen starten indem ich das ADSC 
bit setze:
ADCSRA|=0x40;
ansonsten wird nur einmal nach dem Start des Programms ein Wert 
gemessen.

Laut Datenblatt muss man aber das ADSC bit im free-running mode nicht 
setzen.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Laut Datenblatt muss man aber das ADSC bit im free-running mode nicht
>setzen.

Der Free-Running-Mode muss einmalig gestartet werden.

MfG Spess

Autor: ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja hab ich auch gemacht aber funktioniert trotzdem nicht.

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADATE Bit gesetzt? Wennst nicht die Werte in HEX hingeschrieben hättest, 
hätt ich selber nachgeschaut.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>ja hab ich auch gemacht aber funktioniert trotzdem nicht.

Dann liegt der Hund mit großer Wahrscheinlichkeit in dem Teil des Codes 
begraben, den du nicht gezeigt hast. Free-Running-Mode macht übrigens 
nur in Verbindung mit dem ADC-Complete-Interrupt Sinn.

MfG Spess

Autor: ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christopher G. schrieb:
> ADATE Bit gesetzt?

nein, daran lag es, Danke.

spess53 schrieb:
> Free-Running-Mode macht übrigens
> nur in Verbindung mit dem ADC-Complete-Interrupt Sinn.

kannst du das genauer erläutern?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>kannst du das genauer erläutern?

Wie willst du sinnvoll feststellen, wann der ADC fertig ist. Durch 
pollen?

MfG Spess

Autor: I. L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Is das nicht der Trick? Man kann das ADC-Register immer auslesen, weil 
immer n relativ aktueller Wert drinn steht!? Ich hab mich damit auch 
noch nicht beschäftigt, dachte aber das es laufen würde!?



Gruß Knut

Autor: typ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Wie willst du sinnvoll feststellen, wann der ADC fertig ist.
gar nicht, ist mir egal, wie I. L. schon sagt, man Man kann das 
ADC-Register immer auslesen, weil immer ein relativ aktueller Wert drin 
steht.

Es sein denn durch das schreiben der ADC-Register wird das laufende 
Programm unterbrochen, das wäre natürlich ein Grund gegen den 
free-running mode.

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.