Hi

ich versuch grad den ADC vom Atmega8 zu aktivieren, aber anscheinend funktioniert es nicht.

AVcc und ARef hab ich mit Vcc verbunden und AGnd mit GND

Ich häng mal das Programm an, vielleicht findet ihr den Fehler ja

Code:
.include "m8def.inc"

.equ cputakt   = 1000000            ;arbeitet im Bereich von (1 - 20 MHz) 
.set count_ms   = cputakt / (4000 + 1)    ;ergibt in wait_ms ca.1ms vom Aufruf aus 

.MACRO wait_ms 
	ldi     temp, @0            ;Lade temp mit Zähler (in ms) 
	rcall   delay_ms            ;Aufruf Verzögerungschleife 
.ENDMACRO

.equ LED_PORT = PORTD
.equ LED_DIR = DDRD
.def LED_REG = r16

.def temp = r20
.def temp2 = r21
.def temp3 = r22


.cseg
.org 0x0000

	rjmp reset		; Interruptvektoren überspringen
	reti			; IRQ0 Handler
	reti			; IRQ1 Handler
	reti
	reti
	reti			; Timer1 Capture Handler
	reti			; Timer1 CompareA Handler
	reti			; Timer1 CompareB Handler
	reti			; Timer1 Overflow Handler
	reti			; Timer0 Overflow Handler
	reti			; SPI Transfer Complete Handler
	reti			; USART RX Complete Handler
	reti			; UDR Empty Handler
	reti			; USART TX Complete Handler
	rjmp adc		; ADC Conversion Complete Interrupt Handler
	reti			; EEPROM Ready Handler
	reti			; Analog Comparator Handler
	reti			; Two-wire Serial Interface Handler
	reti			; Store Program Memory Ready Handler

reset:
	ldi temp, LOW(RAMEND)			; LOW-Byte der obersten RAM-Adresse
	out SPL, temp
	ldi temp, HIGH(RAMEND)			; HIGH-Byte der obersten RAM-Adresse
	out SPH, temp	

	ldi temp, 0xFF				; 0xFF in Reg. temp laden
	out LED_DIR, temp			; alle ports als ausgänge
	
	ldi LED_REG, 0b00000000			; alle Pins ein
	out LED_PORT, LED_REG
	
	wait_ms(255)
	
	ldi LED_REG, 0b11111111			; alle Pins aus
	out LED_PORT, LED_REG
	
	wait_ms(255)
	
	rjmp initadc
	
mainloop:
	rjmp mainloop
	
initadc:
	cbi ADMUX, MUX0
	cbi ADMUX, MUX1
	cbi ADMUX, MUX2
	
	cbi ADMUX, REFS0
	cbi ADMUX, REFS1
	
	;sbi ADMUX, ADLAR
	
	sbi ADCSR, ADPS0
	sbi ADCSR, ADPS1
	cbi ADCSR, ADPS2
	
	sbi ADCSR, ADEN
	sbi ADCSR, ADFR
	sbi ADCSR, ADIE
	cbi ADCSR, ADIF
	
	sei
	
	sbi ADCSR, ADSC				; start conversion
	
	rjmp mainloop
		
adc:
	in temp, ADCL				; ADC-Wert einlesen
	in temp2, ADCH				; 10 Bit
	
	ror temp2				; xxxxxxxN	c=N
	ror temp				; Nnnnnnnn	c=n
	ror temp2				; xxxxxxxx	c=N
	ror temp				; NNnnnnnn	c=n
	
	out LED_PORT, temp
	
	reti

; ******************************************************************** 
; delay_ms      verzögert um x ms 
; Parameter : Zeit in ms (1-255) in temp, in Z-Register keine Änderung 
; Rückgabe  : keine 
; ******************************************************************** 

delay_ms:
	push ZL                 ;Z auf den Stack retten 
	push ZH
delay_ms_1:
	ldi ZH, HIGH(count_ms)      ;Lade höherwertiges Byte nach Z 
	ldi ZL, LOW(count_ms)      ;Lade niederwertiges Byte nach Z 
delay_ms_2:
	sbiw ZL, 1               ;subtrahiere 1 von Z 
	brne delay_ms_2            ;solange bis Z = 0 
	dec temp               ;temp um 1 herunterzählen 
	brne delay_ms_1            ;solange bis temp = 0 
	pop ZH                  ;Z vom Stack zurückholen 
	pop ZL 
	ret

Vielen Dank schonmal