Da fehlt was:

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

besser so:

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


kleiner Tipp:


ldi vergleichlow,162
ldi vergleichhigh,0b00000001

besser wäre:

ldi vergleichlow,low(WERT)
ldi vergleichhigh,high(WERT)

Denn ein anderer muss ewig rechnen.

----------

Der ADC-Wert wird nicht korrekt eingelesen.

Schau mal, ob Du hier ein paar Anregungen abgucken kannst

in temp, ADMUX
andi temp, 0b11100000
subi temp, -2 ; KANAL 2
out ADMUX, temp



; neuen ADC-Wert lesen Wert verwerfen, da meist vom vorherigem ADC-Kanal
sbi ADCSRA, ADIF ; logisch "1" löscht ADIF flag !

MESSEN_ww:
sbis ADCSRA, ADIF ; warten bis ADIF flag gesetzt
rjmp MESSEN_ww

; neuen ADC-Wert lesen
sbi ADCSRA, ADIF ; logisch "1" löscht ADIF flag !

MESSEN_www:
sbis ADCSR, ADIF ; warten bis ADIF flag gesetzt
rjmp MESSEN_www

; ADC einlesen:
in temp1, ADCL ; immer zuerst low byte lesen
in temp2, ADCH ; danach das mittlerweile gesperrte high byte