atmega8 ADC Problem

Gast #1675636
Lesenswert?

hallo zusammen,
ich versuche gerade den ADC zum laufen zu bekommen.
atmega8, avr-studio 4.18, usbtiny2313-isp

.include "m8def.inc"

.def temp = r16
.def time = r17
.def null = r18
.def state = r24

.org 0x0000
  rjmp main
.org ADCCaddr
  rjmp ADC_1

main:
  ldi temp, LOW(RAMEND)
  out SPL, temp
  ldi temp, HIGH(RAMEND)
  out SPH, temp

  ldi temp, 0xFF
  out PORTD, temp

  ldi temp, 0b01100010
  out ADMUX, temp
  ldi temp, 0b10000111
  out ADCSRA, temp

ADC_1:
  sbi ADCSRA, ADSC

loop:
  sbic ADCSRA, ADSC
  rjmp loop

  in temp, ADCH
  out PORTD, temp
  rjmp ADC_1


das ganze ist wie im toturial aufgebaut nur das die ergebisse direkt auf 
PORTD ausgegeben werden. linksbündig, AREF=VCC, ADC2-Port, Prescaler=128 
-> 62,5kHz

dise version sollte auch ohne interrupt gehn, aber es kommt garnix an 
-.-

vielleicht kann mir einer sagen warum ^^


lg Hannes
Gast #1675733
Lesenswert?

Hallo,

ich vermisse die Konfiguration von Port D als Ausgang. Wie soll sonst 
dort etwas ausgegeben werden?

Der Code in "main":

>  ldi temp, 0xFF
>  out PORTD, temp

schaltet lediglich die Pullup-Widerstände ein; der Port ist aber Eingang 
(ist Standard nach Reset).

Port D als Ausgang muss heissen:

  ldi temp, 0xFF
  out DDRD, temp

Der Rest der Routine sieht korrekt aus.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren