mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega16 ADC mit unabsichtlichem Free Running Mode


Autor: Christopher G. (cbg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Habe ein ungewöhnliches Problem. Alles funktionniert wie gewollt, ich 
weiß nur nicht wieso  :)
Hab den Atmega16 eingerichtet für ADC. Als Eingang dient die Spannung 
von einem Poti. Initialisierung siehe Anhang ADC.c
In der SINGAL(SIG_ADC) (alte avr-libc) gebe ich die oberen 8 Bit der 
Wandlung auf 8 LEDs aus.

Funktionniert alles wunderbar, ich dreh am Poti und die LEDs ändern sich 
wie erwartet ABER ich hab dann bemerkt, dass ich das ADATE Bit nicht 
gesetzt habe.

Meine Frage ist nun wieso ich im Free Running Mode bin obwohl das ADATE 
Bit im ADCSRA Register nicht gesetzt ist.

Könnte mir das jemand erklären? Ich hab selber keine Begründung finden 
können.

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu kommt noch, dass Du nichtmal per ADSC die Conversion gestartet 
hast...

...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht der restliche Code aus?

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahhh...
Das mit dem ADSC hat mich jetzt auch gewundert.
Meine Main schaut so aus:
while(1)
  asm volatile("sleep \n\t" ::);

und da ich den Idle Modus aktiviert habe, wird jedes mal eine AD 
Wandlung ausgelöst. Wenn die ISR beendet wurde, kommt wieder sleep und 
schwupps landen wir wieder in der ISR.

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sleep...

Da war doch was...

Beim Aktivieren des Sleep wurde doch der eingeschaltete ADC automatisch 
gestartet. Ich weiß aber jetzt nicht, ob das auch beim Mega16 der Fall 
ist, den Typ nutze ich nicht. Das war im Datenblatt etwas versteckt 
erklärt, nicht bei ADC, vermutlich bei Sleep...

...

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt Seite 31, Absatz "Idle Mode", letzter Satz...

...

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Ist beim Atmega16 auch so, dass im IDLE Sleep eine AD Umwandlung 
gestartet wird sofern ADEN gesetzt ist. Hab eh geschrieben, dass es 
daran lag :)
Trzdem Danke

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.