Hallo!
Habe ein doofes Problem mit meinen 3 ATTiny26. Seit einem Tag versuche
ich nun eine AD-Wandlung hinzubekommen, aber irgendwie schaffe ich es
nicht. Ich habe schon verschiedene Tinys, versch. Takte (intern und
extern) und Prescaler und AD-Eingänge versucht. Benutze das STK500. Bin
nun ziemlich ratlos und habe Angst das es an etwas ganz trivialen
liegt...
Hier mein Quelltext:
.include "tn26def.inc"
.def temp = r16
.org 0x000
rjmp RESET
.org 0x001
reti
.org 0x002
reti
.org 0x003
reti
.org 0x004
reti
.org 0x005
reti
.org 0x006
reti
.org 0x007
reti
.org 0x008
reti
.org 0x009
reti
.org 0x00A
reti
.org 0x00B
reti
.org 0x00C
RESET:
ldi temp,RAMEND
out SP,temp
ldi temp,0b11111111
out DDRA,temp
ldi temp,0b00000000
out DDRB,temp
ldi temp, ((1<<ADEN)|(1<<ADSC)|(1<<ADFR)) + 0b00000101
out ADCSR, temp
ldi temp, ((1<<ADLAR))+6
out ADMUX, temp
MainLoop:
in temp,ADCH
out PortA,temp
clr temp
Loop:
rcall Wait_0625ms
dec temp
brne Loop
rjmp MainLoop
Wait_0625ms:
push r16
ldi r16,61
Wait_0625ms_Loop:
nop
nop
nop
nop
nop
nop
nop
dec r16
brne Wait_0625ms_Loop
nop
nop
nop
nop
pop r16
ret
Vielen Dank!
Robert Budde
Hab noch vergessen: Die AD-Wandlung funktioniert überhaupt nicht. D.h. die Wandlung ist nicht ungenau oder so, sondern ich kriege beim Lesen des ADH (brauche nur 8 bit) entweder 0 oder zufällige Werte zurück, die sich aber nicht ändern. D.h. bei einem Eingang krieg ich immer 0, beim nächsten 62 usw. Danke! Robert
Bitte entschuldigt das ich hier so nen Monolog schreibe, aber ich versuche alle Details zusammenzutragen damit mir hoffentlich jemand helfen kann: Habe alle drei Tinys noch mal durchprobiert: Wenn ich den oben geposteten Quellcode nutze bekomme ich bei jedem Baustein identische (falsche, nicht veränderliche) Werte zurück: 00010100. Habe die Negierung des STKs schon beachtet. Also können ja eigentlich nicht alle Wandler defekt sein!? Ich wäre demjenigen der mir nen Quelltext für nen ATTiny26 mit funktionierendem ADC hinwirft sehr dankbar! Gruß Robert
Mit dem tiny26 hab ich noch nichts gemacht - sieht aber interessant aus. Hast Du den Pin "AVCC" angeschlossen?
Hi! Jo, AVCC hab ich angeschlossen (bzw. das STK 500, hab nachgemessen). Hab den Fehler allerdings heute morgen durch komplettes Neuverkabeln und -überlegen gefunden: Hab irgendwie PortA mit PortB bzgl. der Nummerierung der ADCs vertauscht und dadurch immer den falschen Port gemessen. :-/ An sich finde ich den Tiny 26 auf extrem gut, hat die Power von nem alten 2313 zusammen mit bis zu 11 ADC. Gerade die Differentielle Messung find ich goil. Gruß Robert
@Robert: Kannst du mir bitte mitteilen, in welchen Sockel der Tiny26 auf dem STK500 gehört? Das steht in meiner Doku nicht drin. Hab auch schon unter diesem Thread die gleiche Frage gepostet: http://www.mikrocontroller.net/forum/read-1-26735.html Danke und ciao Remo
Hallo Remo! In der Suche "ATTiny26" eingegeben liefert dieses http://www.mikrocontroller.net/forum/read-1-26015.html#26018 Ergebnis. Gruß Robert
Ich weiß nicht wirklich wie es beim ATTtiny ist aber ließ mal im Datenblatt nach, normaler weise bekommst ein Interrupt wenn wandler ergebniss da ist.
Hi Robert, ich habe den TINY26 ausprobiert und es läuft. Anbei meine Wandlerroutine. a0, a1 sind als Register definiert. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.