Hi,

ich lese ganz primitiv die ersten zwei ADC-Kanäle ein, vergleiche sie und steuer nacheinander zwei Ausgänge die eine Rechts bzw. eine Linksfahrt ausführen.
Mit dem JTAG-MK II Interface und Einzel-Step funktioniert das programm problemlos, lasse ich jedoch den ATMEGA das ganze alleine machen, tut sich überhaupt nichts.
Code:
.include "m16def.inc"
.def temp =r16
.def vergleichlow =r18
.def vergleichhigh = r19
.org 0x000 
           rjmp main               ;Reset Handler


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

ldi temp,0xFF
out ddrb,temp
cbi adcsr, adfr
sbi adcsr, adps0
sbi adcsr, adps1
sbi adcsr, adps2
cbi	ADCSR,ADIE
sbi adcsr,aden



;-------------------------------------------------------

grundposition:

sbi adcsr,aden
kanal0:
ldi temp,0b01000000
out admux, temp

sbi adcsr, adsc
AD_busy:	sbis	ADCSR,ADIF	;Flag da?, busy?
	        rjmp    AD_busy		;springt raus, wenn fertig
in zl,adcl
in zh,adch

ldi vergleichlow,100
ldi vergleichhigh,0b00000010


CP vergleichlow,zl ; Vergleiche untere Bytes
CPC vergleichhigh,zh ;Vergleiche obere Bytes

brbs 0,aus
sbi portb,6
rjmp an
aus:
cbi portb,6
cbi adcsr,aden
rjmp kanal1
an:
rjmp grundposition


kanal1:

sbi adcsr,aden

ldi temp,0b01000001
out admux, temp

sbi adcsr, adsc
AD_busy1:	sbis	ADCSR,ADIF	;Flag da?, busy?
	        rjmp    AD_busy1		;springt raus, wenn fertig
in yl,adcl
in yh,adch

ldi vergleichlow,162
ldi vergleichhigh,0b00000001


CP vergleichlow,yl ; Vergleiche untere Bytes
CPC vergleichhigh,yh ;Vergleiche obere Bytes

brbs 0,aus1
sbi portb,4
rjmp an1
aus1:
cbi portb,4
cbi adcsr,aden
rjmp abfrage
an1:
rjmp kanal1

abfrage:
rjmp main
Das mit den Analogeingängen ist wirklich sehr suspekt....

Für Hilfe wäre ich sehr dankbar.

PS: Der Prescaler ist auf 64 da der Takt momentan auf Internen 8Mhz steht. Es handelt sich um einen ATMEGA 16