www.mikrocontroller.net

Forum: Compiler & IDEs ATTINY13 ADC zwei Kanäle aber einer ohne Funktion..


Autor: Ronald Nehring (technikron)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich schaffe mich als Anfänger jetzt schon den ganzen Nachmittag an 
diesem Prog. Ich habe zwei Potis am ATTINY13 an ADC2 und ADC3. Es wird 
aber immer nur der Wert von einem Poti für beide Schleifen verwendet, 
das zweite bleibt ohne Wirkung??? Vielleicht ist mal jemand so nett und 
schaut mal mit weiteren zwei Augen  auf das Prog....

Ich benutze das AVR Studio, keine Fehlermeldungen, alles scheint gut zu 
sein.. Zu testen haben ich nur den Tiny mit zwei Potis, und ner LED am 
Ausgang.

Vielen Dank :-)

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll das denn:
> time1=ADCW;
> time1=0;
> time1 = ADCH;
(speziell die ersten beiden Zeilen).

Wenn Du nur 8 Bit brauchst und ADLAR gesetzt ist, dann brauchst Du auch 
nur ADCH auszulesen. Und es ist Platzverschwendung, für zwei 
8-Bit-Variablen jeweils einen ganzen Integer zu reservieren.

Hast Du Dir eigentlich schon mal den ADC-Code aus dem Tutorial 
angeschaut?

Autor: Ronald Nehring (technikron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

jep hab ich. Es war nur ein weiterer Versuch für den Fall, dass ich doch 
das komplette Wort einmal auslesen muss. Auch das es jetzt zwei 
getrennte Funktionen sind, ist nur ein Versuch gewesen. Eigentlich hatte 
ich den ADC einmal initialisiert und dann beide Werte nacheinander 
ausgelesen. Aber egal wie, da ist der Wurm drinn und ich habe keine 
Lupe... :-(

Viele Grüße - Ronald

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  ADMUX |=  (1 << ADLAR)|        // 8bit in ADCH
>  (1 << MUX0)|
>  (1 << MUX1);
Haste mal überlegt, was mit den aus der jeweils anderen Funktion von 
vorher noch gesetzten Bits in ADMUX passiert, wenn Du das mit einem |= 
schreibst? MUX0 bleibt in Deinem Programm bis in alle Ewigkeit gesetzt, 
so dass nach dem ersten mal nur noch ADC3 abgefragt wird. Lass das | weg 
(in beiden Fällen), dann sollte es klappen.

Autor: Ronald Nehring (technikron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich habs geahnt... ein (zwei) Zeichen zuviel... Super, Danke, funzt 
:-)
Eine Frage noch zum Verständniss. Ich hätte das eine Bit aber auch 
wieder löschen können um zum gleichen Ergebnis zu kommen?

Also nochmal vielen Dank! Dann kann ich den ganzen Quatsch aus dem Code 
wieder rausnehmen..

Viele Grüße
Ronald

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ronald Nehring wrote:
> Eine Frage noch zum Verständniss. Ich hätte das eine Bit aber auch
> wieder löschen können um zum gleichen Ergebnis zu kommen?
Hättest Du. Ist aber überflüssig.

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.