; Hotaru? ; ; pwmled.asm 2003/07/01 ; ; PB2 - LED - GND ; Clock=10MHz ; ;asl -L pwmled.asm; p2hex -F intel pwmled ; cpu at90s2313 include regavr #define TEMP R16 #define RAMP R17 #define TIMER R18 #define ROTATE R19 #define _SREG R20 #define LEDB $04 #define RAMPH 100 #define RAMPL 1 org 0 rjmp reset ;Reset rjmp 0 ;INT0 rjmp 0 ;INT1 rjmp 0 ;TIM_CAPT1 rjmp 0 ;TIM_COMP1 rjmp 0 ;TIM_OVF1 rjmp tc0_ov ;TIM_OVF0 rjmp 0 ;UART_RXC rjmp 0 ;UART_DRE rjmp 0 ;UART_TXC rjmp 0 ;ANA_COMP tc0_ov in _SREG,SREG cpi ROTATE,0 brne to_up to_down dec RAMP cpi RAMP,RAMPL ;(RAMPRAMPH)?ROTATE=0 brcs tc0_end ldi ROTATE,0 rjmp tc0_end tc0_end out SREG,_SREG reti reset: ldi TEMP,iramend out SPL,R16 ldi TEMP,LEDB out DDRB,TEMP ldi TEMP,$05 ; 0000 0101=Clock/1024 out TCCR0,TEMP ldi TEMP,(1< RAMP) ? LED-OFF : LED-ON ledon ldi TEMP,LEDB out PORTB,TEMP nop rjmp skip ledoff ldi TEMP,0 out PORTB,TEMP rjmp skip skip rjmp loop end