; *** Blinklicht 1.1 (c) Oliver Mezger 21.2.2011 .include "tn2313def.inc" .def tmp = R16 ;Temporaeres Register .def innen = R20 ;Hilfsregister fuer Warteschleife .def aussen = R21 ;Hilfsregister fuer Warteschleife .def wtmp = R22 ;Hilfsregister fuer Warteschleife .equ clk = 4 ;CPU-Takt in MHz reset: ldi tmp, low(RAMEND) ;Stackpointer initialisieren out SPL,tmp ldi tmp, 0xff out PORTB,tmp ;alle LED aus out DDRB,tmp ;alles auf Ausgang loop: cbi PORTB,1 ;LED1 an rcall warte500ms ;Unterprogrammaufruf sbi PORTB,1 ;LED1 aus rcall warte500ms rjmp loop warte500ms: ;Unterprogramm 500ms Warten ldi wtmp, 50 w50loop: rcall warte10ms dec wtmp brne w50loop ret warte10ms: ;Unterprogramm 10ms Warten ldi aussen,clk*10 ;anpassen an CPU-Takt loop_aussen: ldi innen,250 loop_innen: nop dec innen brne loop_innen dec aussen brne loop_aussen ret