Also ich post einfach mal den ganzen Code erstmal:
Code:
.include "m8def.inc"

.equ time0_1 = 256-4		;Damit wird der Timer0 vorgeladen - für 1KHz
.equ time0_2 = 256-1		;Damit wird der Timer0 vorgeladen - für 4KHz
.equ time2 = 256-90			;Damit wird der Timer2 vorgeladen
.equ Summer = PB2			;Summer an B.2
.def tmp = r16				;Mein Universallregister
.def statusreg = r17		;Mein Statusregister
.def zaehler = r18			;Mein Zählregister

.org 0x000
	rjmp reset				;Interruptvektor "reset:"

.org OVF2addr
	rjmp pruefZaehler		;Interruptvektor für Timer2 Überlauf, hier spring
							;das Programm hin, wenn der Timer überläuft

.org OVF0addr
	rjmp blabla


reset:
	;Stack einrichten
	ldi tmp, HIGH(RAMEND)		;HIGH-Byte der obersten RAM-Adresse
	out SPH, tmp
	ldi tmp, LOW(RAMEND)		;LOW-Byte der obersten #RAM-Adresse
	out SPL, tmp

	sbi DDRB, Summer			;B.2 als Ausgang
	cbi PORTB, Summer			;B.2 auf LOW stellen -> LED aus am Anfang

	;Timer Register werden belegt, hier Timer 2
	ldi tmp, (1<<CS22) | (1<<CS21) | (1<<CS20)	;Prescaler ist 1024
	out TCCR2, tmp					;Register TCCR2 ist für den Prescaller zuständig
	ldi tmp, (1<<TOIE2)				;Hier werden Interrupts nach Timer2 Überlauf eingeschaltet
	out TIMSK, tmp					;Register TIMSK ist dafür zuständig
	ldi tmp, time2					;Hier wird der Timer vorgeladen und zwar mit 255-90
	out TCNT2, tmp

	;Timer Register werden belegt, hier Timer0
	ldi tmp, (1<<CS02) | (1<<CS00)	;Prescaler ist 1024
	out TCCR0, tmp					;Register TCCR0 ist für den Prescaller zuständig
	ldi tmp, (1<<TOIE0)				;Hier werden Interrupts nach Timer0 Überlauf eingeschaltet
	out TIMSK, tmp					;Register TIMSK ist dafür zuständig
	ldi tmp, time0_1				;Hier wird der Timer vorgeladen
	out TCNT0, tmp
	sei								;Interrupts zulassen

loop:
	cpi zaehler, 0b00101000		;Wenn Zählregister != 40 ist
	brne loop					;dann spring wieder zurück zu "loop:"

zeitum:
	clr zaehler					;Zählregister auf 0 setzen
	sbic PINB, Summer				;überspringe, wenn B.2 = 0 ist (LED aus?)
	rjmp zeitum1				;wenn B.2 = 1, dann spring zu "zeitum1:"

zeitum0:
	sbi PORTB, Summer				;B.2 = 1 setzen -> LED an
	rjmp loop					;wieder zur loop springen

zeitum1:
	cbi PORTB, Summer				;B.2 auf 0 setzen -> LED aus
	rjmp loop					;wieder zur loop springen

pruefZaehler:
	in statusreg, SREG			;SREG sichern
	inc zaehler					;Zählregister um 1 erhöhen
	ldi tmp, time2				;Hier wird der Timer vorgelaen und zwar mit 255-90
	out TCNT2, tmp				;Er läuft 90 mal durch, bevor ein Interrupt auftritt
	out SREG, statusreg			;SREG wiederholen
	reti						;wieder zurück, wo du hergekommen bist

blabla:
	in statusreg, SREG
	ldi tmp, time0_1
	out TCNT0, tmp
	out SREG, statusreg
	reti
Hab zwar schon alles in Summer geändert, aber zum testen hab ich trotzdem erstmal noch an der LED angeschlossen. So, wie jetzt der Code ist, blinkt die LED gar nicht. Wenn ich allerdings das hier auskommentiere, dann gehts:
Code:
;Timer Register werden belegt, hier Timer0
	ldi tmp, (1<<CS02) | (1<<CS00)	;Prescaler ist 1024
	out TCCR0, tmp					;Register TCCR0 ist für den Prescaller zuständig
	ldi tmp, (1<<TOIE0)				;Hier werden Interrupts nach Timer0 Überlauf eingeschaltet
	out TIMSK, tmp					;Register TIMSK ist dafür zuständig
	ldi tmp, time0_1				;Hier wird der Timer vorgeladen
	out TCNT0, tmp
Und das will in mein kleine Köpfchen nicht rein

Mit deinem Vorschlag bin ich zufrieden, aber ich bezweifle, dasses was bringt *g*

Gruß
Thomas

PS: Sorry, dass mein letzter Post so durcheinander war