Forum: Mikrocontroller und Digitale Elektronik ATtiny26 - Probleme mit ADC


von Paul W. (mosfetkiller)


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. :-/
1
RESET:
2
  ldi r16, 0b11111111          ; DDR A
3
  out DDRB, r16
4
5
  ldi r16, 0b00000000          ; PORT A
6
  out PORTB, r16
7
8
  ldi r16, 0b00001111          ; DDR B
9
  out DDRB, r16
10
11
  ldi r16, 0b00000000          ; PORT B
12
  out PORTB, r16
13
14
  ; ADC
15
  ldi    r16, 0b00101001        ; AVCC, ADLAR, ADC9
16
  out    ADMUX, r16
17
18
  ldi    r16, 0b11100110        ; ADEN, ADSC, ADFR, Prescaler 64 (250kHz)
19
  out    ADCSR, r16
20
21
  sei                  ; Interrupts an
22
23
24
MAIN:
25
    sbic    ADCSR, ADSC
26
    rjmp    MAIN
27
28
  in    r16, ADCH
29
30
  out    PORTA, r16
31
  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

von spess53 (Gast)


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

von Paul W. (mosfetkiller)


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!

von spess53 (Gast)


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

von spess53 (Gast)


Lesenswert?

Hi

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

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.