www.mikrocontroller.net

Forum: Compiler & IDEs ADC hängt beim ADIF-Check


Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

irgendwie stehe ich gerade wie der 'Ochse vor dem Berg'...
Ich versuche mit einem ATmega8 analoge Werte einzulesen, dazu habe ich
mal den Code aus dem Tutorial genommen, aber das Programm kommt wohl
nicht aus der ADIF-Check Schleife
   while(!(ADCSRA & (1<<ADIF)));
raus.

Nur scheint die Zeile zum löschen des ADIF-Flags
   ADCSRA = (1<<ADIF);
das komplette Register zu überschreiben -> kein ADEN mehr -> keine
weitere AD-Wandlung -> ADIF wird nie mehr gesetzt -> nothing moves

hab ich da einen groben (Denk-)Fehler oder kann jemand diese Verhalten
nachvollziehen?
Ach ja, ich benutze die aktuelle WINAVR Version.

Danke schon mal und Grüße
Manfred

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas wie

   ADCSRA = (1<<ADIF);

ist nur sinnvoll, wenn es sich beim entsprechenden Register um eins
mit ausschließlich Interrupt-Flags handelt.  Das ist hier nicht
der Fall, daher sollte man entweder

   ADCSRA |= (1 << ADIF);

schreiben oder aber gleich das gesamte Register neu beschreiben
(einschließlich des ADIF).

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Jörg

Danke erstmal für die schnelle Antwort..mit

   ADCSRA |= (1 << ADIF);

hatte ich's auch getestet und da hat es funktioniert, war nur unsicher
bzgl. der Beschreibung im Tutorial (sollte ich vielleicht nacher mal
ergänzen...)

BTW wann kann man dich jetzt mal zu dem Beer einladen? :-)

Manfred

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> BTW wann kann man dich jetzt mal zu dem Beer einladen? :-)

Eigentlich immer, ist nur die Frage: wo?

In Dresden können wir sicher schnell mal einen Termin finden, woanders
nur dann, wenn ich zufällig mal in der Ecke aufschlage.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann werd ich mal Augen und Ohren offen halten :-)

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.