YEAH, ich habs gewusst. Hab schon zu meiner Freundin gesagt, dass ich noch was unnötiges drinne habe, aber so hab ich eben gelernt mit Registern umzugehen
Also ist nicht schwer die Aufgabe, hier der Code:
Code:
.include "m8def.inc"

.equ time = 255 -254		;Damit wird der Timer vorgeladen
.equ LED = PB2				;LED an B.2
.def tmp = r16				;Mein Universallregister
.def zaehler = r18			;Mein Zählregister

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

.org OVF0addr
	rjmp pruefZaehler		;Interruptvektor für Timer0 Überlauf, hier springt
							;das Programm hin, wenn der Timer überläuft

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, LED				;B.2 als Ausgang
	cbi PORTB, LED				;B.2 auf LOW stellen -> LED aus am Anfang

	;Timer Register werden belegt, hier Timer 0
	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, time					;Hier wird der Timmer vorgelaen und zwar mit 255-254
	out TCNT0, tmp					;Er läuft 254 mal durch, bevor ein Interrupt auftritt
	sei								;Interrupts zulassen

loop:
	rjmp loop					;Immer wieder selbst aufrufen -> Endlosschleife

pruefZaehler:
	inc zaehler					;Zählregister um 1 erhöhen
	cpi zaehler, 0b00001111		;Wenn Zählregister = 65 ist
	breq zeitum					;spring zu "zeitum:" wenn zaehler = 65

	rjmp zeitum2				;zu "zeitum2:" springen

zeitum:
	clr zaehler					;Zählregister auf 0 setzen
	sbis PINB, LED              ;überspringe, wenn B.2 = 1 ist (LED an?)
	rjmp zeitum0				;zu "zeitum0:" springen
	rjmp zeitum1				;zu "zeitum1:" springen

zeitum0:
	sbi PORTB, LED				;B.2 = 1 setzen -> LED an
	rjmp zeitum2

zeitum1:
	cbi PORTB, LED				;B.2 auf 0 setzen -> LED aus
	rjmp zeitum2

zeitum2:
	ldi tmp, time				;Hier wird der Timer vorgelaen und zwar mit 255-254
	out TCNT0, tmp				;Er läuft 254 mal durch, bevor ein Interrupt auftritt
	reti						;die Interrupt-Routine wird verlassen
								;und es wird weiter im Hauptprogramm gearbeitet
Ich finds echt nett von dir, dass du dir so viel Mühe mit mir gibst. Darf ich mal so nebenbei fragen, was du beruflich machst? Ich tipp mal auf Lehrer?

Gruß
Thomas

PS: Ich glaub, Assembler wird noch richtig lustig
Mir wird nur schlecht, wenn ich seh wie man Timer in C oder Basic programmiert, wie wenig Zeilen das da sind *g*

[edit]
Hab noch ein Befehl rausgenommen Wieder eine Zeile weniger.