Bin so langsam am verzweifeln. Sitze hier nun Stunden bei und kann den fehler nicht finden.

Code:
;-------Analog Comparator Test----------------------------
.include "m8def.inc"         ;Definitionsdatei einbinden

rjmp reset 			; Reset Handler
reti 				; IRQ0 Handler
reti 				; IRQ1 Handler
reti 				; Timer1 Capture Handler
reti 				; Timer1 compare Handler
reti 				; Timer1 Overflow Handler
reti		 		; Timer0 Overflow Handler
reti 				; SPI Transfer Complete Handler
reti			    ; UART RX Complete Handler : RXCIE
reti 				; UDR Empty Handler
reti 				; UART TX Complete Handler
reti 				; ADC Conversion Complete Interrupt Handler
reti 				; EEPROM Ready Handler
;rjmp comparator		; Analog Comparator Handler

reset:
;	sbi ACSR, ACIS1
;	sbi ACSR, ACIS0
;	sbi ACSR, ACIE
;	sei

	ldi r16, 0xFF       
	out DDRC, r16       

	ldi r16, 0x00 		
	out PORTC, r16      ;LED aus

	ldi r17, ACSR
	SBRS r17, 5           ;5=ACO Bitabfrage wenn Comparator schaltet
rjmp reset
ledan:
	ldi r16, 0xFF		;LED an
	out PORTC, r16
	ldi r17, ACSR
	SBRC r17, 5            ;5=ACO Bitabfrage wenn Comparator schaltet
rjmp ledan
rjmp reset

;comparator:
;	ldi r16, 0x00		;LED an
;	out PORTC, r16
;reti
Das ist das Programm. In der Mega8 Doku steht:"When the voltage on the positive pin AIN0 is higher than the voltage on
the negative pin AIN1, the Analog Comparator Output, ACO, is set." Es muß also auch ohne Interrupt gehen. Habe also mal den Interruptteil auskommentiert.
Das Programm läuft in so weit, dass die richtige LED bei einem vollen Potianschlag leuchtet wenn ich das Programm überspielt habe. Drehe ich den Poti zum anderen Anschlag ist die LED immernoch an. Überspiele ich das Programm erneut bei dem gleichen Potianschlag, so geht die LED aus. Und das kann man wieder anders herum wiederholen. Kann es mir irgendwie nicht mehr erklären. Der Comparator scheint also zu funktionieren, aber nur wenn das Programm überspielt wird. Während der Laufzeit funktioniert es nicht.

Woran liegt es?