ADC Testen / Problem

Gast #3640449
Lesenswert?
• ▲
▼
Hallo zusammen,
ich würde gerne der ADC meines atmega8 testen.
Dazu habe ich wie im Tutorial ein 500k Poti zwischen 5V und GND 
geschaltet. Der wiper geht an den PC0 Eingang also ADC0.

Mein Hauptproblem ist, dass ich nicht so recht weiß wie ich den ADC 
konfigurieren soll. Deshalb habe ich jetzt einfach mal die Konfiguration 
aus dem Beispielcode geklaut. Hier ist der Code wie ich ihn gerade 
stehen habe:

1
.def temp = r16
2
clr temp
3

4
ldi temp, 0xFF
5
out DDRD, temp
6

7
ldi temp, (1<<REFS0)
8
out ADMUX, temp
9

10
ldi temp, (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0)
11
out ADCSRA, temp
12

13
sbi ADCSRA, ADSC
14

15
loop:
16

17

18
in temp, ADCL
19
;in temp, ADCH
20
out PORTD, temp
21

22
rjmp loop

Also so habe ich das eingestellt, dass die interne Referenz benutzt 
wird.
Grundsätzlich ist der ADC eingeschaltet und der Prescaler ist auf 8 
gesetzt, da ich den internen Oszillator benutze (1MHz).

Mein Ziel ist es jetzt einmalig einen Wert auszulesen und den in Binär 
an PORTD auszugeben.
Das funktioniert allerdings nicht. Ich lese nur ADCL aus, da die anderen 
2 Bits für mich erst mal uninteressant sind.
Was habe ich vergessen zu beachten?
Gast #3640502
Lesenswert?
• ▲
▼
Also muss ich neben dem ADCL auch das ADCH auslesen, da ich sonst keinen 
Zugriff mehr auf die Register habe.
Allerdings komme ich immer noch nicht so ganz weiter.

Ich habe Das ADCH Bit hinzugefügt und den Loop in folgendes geändert:
1
loop:
2

3
in temp2, ADCL
4
in temp, ADCH
5
out PORTD, temp2
6

7
rjmp loop

Die LEDs an meinem STK500 sagen mir, dass das ADCL Byte komplett auf 1 
steht, egal wie das Poti steht.
Gast #3640540
Lesenswert?
• ▲
▼
Hi

>Was habe ich vergessen zu beachten?

Du hast vergessen auf das Ende der ADC-Wandlung zu warten.
1
     sbi ADCSRA, ADSC
2

3
aaa:  sbic ADCSRA,ADSC
4
      rjmp aaa
5

6
      in temp, ADCL
7
      out PORTD, temp
8
      in temp, ADCH
9
      ....

MfG Spess

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.