[an error occurred while processing this directive]
|
;Runs 4 software timers after prescaling timer0 rate by divisor value
;9/17 cycles (0.45/0.85 uS @20 MIPS)
;12 code words
;C++ suxxx :))
.def stat = r4 ;SREG storage register
.def prescal = r18 ;Dedicated timer0 8-bit extender/prescaler register
.def stimer1 = r6 ;8-bit software timer #1
.def stimer2 = r7 ;8-bit software timer #2
.def stimer3 = r8 ;8-bit software timer #3
.def stimer4 = r9 ;8-bit software timer #4
.equ divisor = 27 ;Sample divisor value - soft timers will run 27 times slower than timer0
timer0ISR:
in stat,SREGinc prescal
cpi prescal,divisor
breq do_stimers
t0isr_rt:
out SREG,stat
reti
do_stimers:
inc stimer1
inc stimer2
inc stimer3
inc stimer4
clr prescal
rjmp t0isr_rt
E-mail: info@telesys.ru