; Hotaru? ; ; hardpwm.asm 2003/07/02 ; ; PB3(OC1) - LED - GND ; Clock=10MHz ; ;asl -L hardpwm.asm; p2hex -F intel hardpwm ; cpu at90s2313 include regavr ;save area,Timer0 Interrupt. #define _SREG R0 #define TEMP R16 ;Bright Control #define RAMP R17 ;0=Down, else=Up. #define ROTATE R19 ;Bright #define RAMPH 101 ;Dark #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 ; Timer 0 OverFlow = Timer0Clock / 256 ; Clock=10MHz, Timer0Clock=10E6/1024,OverFlow=26.2mS ; RAMPH-RAMPL = 100, Dark->Bright->Dark=5.24Sec 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 OCR1L,RAMP out SREG,_SREG reti reset: ldi TEMP,iramend out SPL,R16 ;Stack ; PWM = Timer1Clock / 510(8Bit PWM) sbi DDRB,3 ; PB3 OUTPUT ldi TEMP,(1<