www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny26 - Probleme mit ADC


Autor: Paul Wilhelm (mosfetkiller)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend allerseits.

Vor ein paar Stunden machte ich meine erste Begegnung mit A/D-Wandlern 
überhaupt.

Ich verwende einen ATtiny26 bei 16MHz und möchte mir schlicht und 
einfach erst einmal 8 Bits des ADC-Wertes am PORTA ausgeben lassen.

Das Datenblatt habe ich auch schon studiert und folgenden kleinen Code 
verfasst. Allerdings tut sich da genau nichts. :-/
RESET:
  ldi r16, 0b11111111          ; DDR A
  out DDRB, r16

  ldi r16, 0b00000000          ; PORT A
  out PORTB, r16

  ldi r16, 0b00001111          ; DDR B
  out DDRB, r16

  ldi r16, 0b00000000          ; PORT B
  out PORTB, r16

  ; ADC
  ldi    r16, 0b00101001        ; AVCC, ADLAR, ADC9
  out    ADMUX, r16

  ldi    r16, 0b11100110        ; ADEN, ADSC, ADFR, Prescaler 64 (250kHz)
  out    ADCSR, r16

  sei                  ; Interrupts an


MAIN:
    sbic    ADCSR, ADSC
    rjmp    MAIN

  in    r16, ADCH

  out    PORTA, r16
  rjmp  MAIN

Ausgewählt ist der ADC9. An PB6 habe ich dazu einfach ein Kabel gelötet, 
mit dem ich über ein Poti zwischen VCC und GND herumfummele.

Vielleicht kann mir jemand helfen, den Fehler zu finden; PORTA rührt 
sich nicht und bleibt 0.

Viele Grüße,
Paul

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

> ldi r16, 0b11111111          ; DDR A
>  out DDRB, r16

>  ldi r16, 0b00000000          ; PORT A
>  out PORTB, r16

Der Tiny reagiert auf Befehle, nicht auf Kommentare.

MfG Spess

Autor: Paul Wilhelm (mosfetkiller)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peinlich, peinlich.

Lustig ist, dass ich das überhaupt nicht gemerkt habe, da die Pullups 
des AVR stark genug für den Rest meiner Schaltung waren.

Danke, jetzt funktioniert alles.

Schönen Abend noch!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Was mich jetzt interessiert: wird im FreeRunningMode ADSC überhaupt
>gelöscht?

Gute Frage.

Laut DB:
>ADSC will read as one as long as a conversion is in progress. When the 
>conversion is complete, it returns to zero.

Da wäre die Frage eigentlich: Wie lange ist das Bit 0.

MfG Spess

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Da hat Michael seinen Beitrag wohl zurückgezogen.
Bitte die (anscheinend) unmotivierte Antwort zu ignorieren.

MfG Spess

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.