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.