; *** Blinklicht mit Interrupt 1.0 (c) Oliver Mezger 20.07.2010 .include "tn2313def.inc" ;* Blinker (PB0) soll mit 1Hz blinken, Interrupt wird alle 500ms aufgerufen ;* Interner RC-Oszillator mit 8MHz geteilt durch 8 (tiny2313 Spezialitaet) ;* Systemtakt Phi ist somit 1MHz ;* Zaehlertakt von 16Bit-Timer1 sei Phi/8 somit waere Interruptintervall = 65536*8us= 524,29ms ;* Zaehler startet deshalb nicht mit 0 sondern einem hoeheren Wert damit Zeit stimmt. .equ zaehlerstartwert = 3036 ;Wert mit dem der Zaehler startet .def tmp = R16 ;Hilfsregister .def itmp = R17 ;Hilfsregister fuer Interrupt rjmp reset ;Sprung zur Initialisierung .org OVF1addr ;naechter Befehl an der Interrupteinsprungadresse rjmp isrOVF1 ;Sprung zur Interruptbehandlungsroutine .org INT_VECTORS_SIZE ;weiter nach Interrupttabelle reset: ;Initialisierung nach Reset ldi tmp,low(RAMEND) ;oberste RAM-Adresse laden out SPL,tmp ;Stackpointer initialisieren ldi tmp,$ff out PORTB,tmp ;alle LED aus out DDRB,tmp ;PB als Ausgang ldi tmp,1<