Hi Scotch,

bei Assembler kann ich dir da nicht sehr helfen da ich mit Bascom programmiere!

Evtl. hilft dir das Stück Code aus einer Lauflichtsteuerung was
!!! Keine Gewähr, ob es funzt!!! Ist nicht von mir!
Mußt Dir halt die Passagen raus suchen mit den Timern.
Dürfte aber kein Problem sein.

Code:
;Beginn des Programmcodes

reset:	ldi r16,low(RAMEND)
	out SPL,r16

	ldi r16,0x00
	out TCCR1A,r16  	;Timer 1 disconnect OC1 + PWM
	ldi r16,0x03
	out TCCR1B,r16		;Timer 1 prescaling 1/64
	ldi r16,T1Lval
	out TCNT1L,r16		;Timer low value
	ldi r16,T1Hval
	out TCNT1H,r16		;Timer high value
	ldi r16,0x80
	out TIMSK,r16		;Timer1 overflow enabled
	sei			;Enable global Interrupts
	
        ldi result,$ff          ;Port B -> output
        out DDRB,result
        out DDRD,result		;Port D -> output	

Startprog:
	
	sei		;Enable global Interrupts
;Auswahl ob High oder Low geschoben wird
	ldi Anzeige,$0		;LED on (Low)
	sec			;set Carry (H wird durch die Ports geschoben)
;	ldi Anzeige,$ff		;LED off (High)
;	clc			;clear Carry (L wird durch die Ports geschoben)

loop:	out PORTB,Anzeige
	out PORTD,Anzeige
	rjmp loop		;Timing durch Interrupts