Hallo zusammen,

ich habe hier einen ganz simplen Code zum einlesen von zwei ADC Werten. Dabei ist der eine der Sollwert und der andere der gemessene Istwert. Die Schaltung ist ähnlich einem Schaltnetzteil mit FET`s als Schalter und einem Optokoppler als Potentialtrennung versehen. Ich verwende hier einen ATmega 8 ohne externen Quarz, also die 3,6864 MHz.
Code:
mainloop:	wdr
;zum clearen von ADCH und ADCL
;AVcc-left_adjusted-channel 1 => Taster
	out	ADMUX,r16
	out	ADCSRA,r31	;adc-enable/start_conversion/clk:32
bis_convertet1:
	sbic	ADCSRA,6
	rjmp	bis_convertet1
	in	r17,ADCH
	nop
	nop
	nop
	out	ADMUX,r18
	out	ADCSRA,r31
bis_convertet2:
	sbic	ADCSRA,6
	rjmp	bis_convertet2
	in	r19,ADCH
	cp	r17,r19	;VERGLEICH-VERGLEICH-VERGLEICH
	brcc	an
	ldi	r21,0b11111111
	out	PORTB,r21
	rjmp	mainloop
an:
	ldi	r21,0b00000000
	out	PORTB,r21



;Hier den Quellcode etztztintragen.
	rjmp	mainloop
Das Problem ist, dass das Program extrem langsam ist, man kann aslo die Schaltimpulse mitzählen. Woran liegt das?

Danke,
The Man