AD-Wandler-Problem beim ATTiny26

Gast #28140
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
Gast
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
Gast
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
Gast
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
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.