2 ; control the light connected to the pwm output pins
4 ; author: hackbard@hackdaworld.org
8 .include "../include/2313def.inc"
30 ; usart data register empty
36 ; pin change interrupt
38 ; timer/counter 1 compare match b
40 ; timer/counter 0 compare match a
42 ; timer/counter 0 compare match b
50 ; watchdog timer overflow
59 ldi r16,low(RAMEND) ; write top of ramend (lowbyte)
60 out SPL,r16 ; to stackpointer
63 ldi r16,12 ; "38.4k bps @ 8 mhz" in r16
64 out UBRR,r16 ; write to uart baudrate register
65 ldi r16,(1<<RXEN)|(1<<TXEN)|(1<<RXCIE) ; enable rx/tx + rx interrupt
66 out UCSRB,r16 ; write to uart control register
68 ; pwm (OC0A=PB2 OC0B=PD5)
78 ldi r16,(1<<PIND5)|(1<<PIND6)
81 ; toggle OC0A/B on compare match / fast pwm
82 ldi r16,(1<<COM0A0)|(1<<COM0B0)|(1<<WGM00)|(1<<WGM01)
84 ; top in OCR0A / no clock prescaling
85 ldi r16,(1<<WGM02)|(1<<CS00)
86 ; overflow interrupt enable
88 ; initial pwm value 0x7f
93 ; global interrupt enable