PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC-Probleme



ROST
11.02.2006, 19:01
Wer kann mir helfen?

Habe auf dem STK500 einen AT90S8535 laufen. Ich möchte nun eine Spannung an ADC0 (Poti angeschlossen) messen und an die an PortD angeschlossenen Led ausgeben. Am Simulator läuft das Programm, nicht aber auf dem Board was mache ich falsch?




.INCLUDE "8535def.inc"
.LIST

.CSEG
.ORG $0000

.def AKanal = r19



init:

ldi r16, LOW(RAMEND)
out SPL, r16
ldi r16, HIGH(RAMEND)
out SPH, R16

ldi AKanal,0
ldi r16, 0xFF
out DDRd, r16

loop:
mov r16,AKanal
out ADMUX, r16
ldi r16, 0b10000111
out ADCSR,r16
sbi ADCSR,ADSC

Wait:
sbis ADCSR,ADIF
rjmp Wait

in r17,ADCL
in r18,ADCH

lsr r18
ror r17
lsr r18
ror r17

com r17
out Portd,r17

rjmp loop

izaseba
11.02.2006, 19:32
Ist das richtig, daß Du Admux mit 0 belädst?

Gruß Sebastian

ROST
11.02.2006, 19:37
Ja-da ADMUX 0 ist ADC0.
Aber es ist egal wenn ich ADMUX mit z.B. 3 lade, also ADC3 wähle, besteht das selbe Problem aber mit ADC3.

izaseba
11.02.2006, 20:06
Also benutzt Du externe Referenzspannung?

ROST
11.02.2006, 20:47
Hallo Sebastian!
Es handelt sich nicht um einen mega8535, sondern um einen 90s8535.
Im Admux kann nur der Analog Kanal ausgewählt werden, sonst nichts.
Glaube ich zumindest.

Gruß
Roland

izaseba
11.02.2006, 21:46
Hallo Roland,
Habe gerade im Dattenblatt geguckt, Du hast recht, ADMUX benutzt nur die untersten 3 Bits, sorry kenn den Controller nicht 8-[

Laut Dattenblatt brauchst Du eine externe Referenzspannung, hast Du den
Jumper (AREF) auf dem STK500 geschlossen, und hast Du die Spannung eingestellt?
nicht daß sie auf 0,4 V steht, oder sowas...
stell Sie so hoch wie möglich, VCC halt, am sonsten, der Poti, ist der richtig angeschlossen(VCC,ADCPin,GND) ?
So wie ich das sehe, muß Dein Programm so laufen :-k ich mach daß auch so in der Art etwa :-k

Gruß Sebastian

ROST
12.02.2006, 10:09
Ich bin Ratlos. Habe alles so gemacht, Jumper gesetzt AREF 5V usw.
Trotzdem danke für deine Hilfe.

Gruß Roland