; *** Blinklicht mit 8Bit Timer 1.0 (c) Oliver Mezger 01.01.2011 .include "tn2313def.inc" ;* Blinker (PB0) soll mit 0,5Hz blinken, Interrupt wird alle 250ms aufgerufen ;* Interner RC-Oszillator mit 8MHz geteilt durch 8 (tiny2313 Spezialitaet) ;* Systemtakt Phi ist somit 1MHz ;* Zaehlertakt von 8Bit-Timer0 sei Phi/1024 somit waere Interruptintervall = 256*1024us = 262ms ;* Zaehler startet deshalb nicht mit 0 sondern einem hoeheren Wert 12 damit Zeit stimmt. .def tmp = R16 ;Hilfsregister .def itmp = R17 ;Hilfsregister fuer Interrupt rjmp reset ;Sprung zur Initialisierung .org OVF0addr ;naechter Befehl an der Interrupteinsprungadresse rjmp isrOVF0 ;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,5 ;Vorteiler auf Phi/1024 setzen out TCCR0B,tmp ;alle 1024us ein Zaehl-Impuls ldi tmp,1<