; *** LED-Dimmer mit 8Bit Timer0 1.0 (c) Oliver Mezger 12.01.2011 .include "tn2313def.inc" ;* LED an PB0 neg. Logik soll gedimmt werden. Timer0 mit OverFlow Interrupt ;* Interner RC-Oszillator mit 8MHz geteilt durch 8 (tiny2313 Spezialitaet) ;* Systemtakt Phi ist somit 1MHz ;* Zaehlertakt von 8Bit-Timer0 sei Phi ;* LED soll nach Initialisierung mit 10% leuchten 25us 0, 230us 1 .def tmp = R16 ;Hilfsregister .def itmp = R17 ;Hilfsregister fuer Interrupt .def led = R18 ;LED Helligkeit .def innen = R20 ;Hilfsregister fuer Warteschleife .def aussen = R21 ;Hilfsregister fuer Warteschleife .equ clk = 1 ;CPU-Takt in MHz 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 led,25 ;LED 10% Helligkeit ldi tmp,$ff out PORTB,tmp ;alle LED aus out DDRB,tmp ;PB als Ausgang ldi tmp,1 ;Vorteiler auf Phi out TCCR0B,tmp ;alle 1us ein Zaehl-Impuls ldi tmp,1<