2 ; control the light connected to the pwm output pins
4 ; author: hackbard@hackdaworld.org
8 .include "../include/2313def.inc"
10 ; for register/bit definitions compatibility
11 .include "./s90_to_tiny.inc"
33 ; usart data register empty
39 ; pin change interrupt
41 ; timer/counter 1 compare match b
43 ; timer/counter 0 compare match a
45 ; timer/counter 0 compare match b
53 ; watchdog timer overflow
62 ldi r16,low(RAMEND) ; write top of ramend (lowbyte)
63 out SPL,r16 ; to stackpointer
68 ldi r16,12 ; "38.4k bps @ 8 mhz" / "4.8k bps @ 1 mhz"
69 out UBRRL,r16 ; write to uart baudrate register
70 ldi r16,(1<<RXEN)|(1<<TXEN)|(1<<RXCIE) ; enable rx/tx + rx interrupt
71 out UCSRB,r16 ; write to uart control register
74 ldi r16,(1<<PD2) ; int0 input
76 ldi r16,(1<<PD2) ; int0 pull-up
78 ldi r16,0 ; interrupt on low level of int0
80 ldi r16,(1<<INT0) ; ir enable
86 ldi r16,0xff ; pull high
94 ; global interrupt enable
113 ldi r16,0 ; disable int0
115 cpi r17,0xff ; toggle light
118 ldi r17,0xff ; turn off light
122 ldi r17,0 ; turn on light
140 ldi r16,(1<<INT0) ; (re)activate int0