.include "def.s" .equ LOC, 0x128 .equ FREQ, 0x80 .org 0x0000 ; reset interrupt jmp init .org 0x0040 ; timer 0 overflow interrupt jmp tmrint .org 0x0068 init: ; IO sbi DDRB, 5 sbi DDRD, 2 cbi PORTB, 5 cbi PORTD, 2 ; stack ldi r16, STOFL ldi r17, STOFH out SPL, r16 out SPH, r17 ; initial ldi r16, 69 sts ADDR, r16 ; timer ldi r18, 0b00000001 out TCCR0B, r18 ldi r18, TOIE0 sts TIMSK0, r18 sei rcall main tmrint: push r18 in r18, SREG push r18 push r19 push r20 push r21 lds r20, LOC ldi r21, FREQ inc r20 cpse r20, r21 rjmp .stt in r18, PORTD ldi r19, (1 << 2) eor r18, r19 out PORTD, r18 eor r20, r20 .stt: sts LOC, r20 pop r21 pop r20 pop r19 pop r18 out SREG, r18 pop r18 sei reti main: sei ldi r17, 128 .loop: lds r1, ADDR in r6,TCNT0 cp r1, r17 breq .finloop inc r1 sts ADDR, r1 rjmp .loop .finloop: in r13, PINB in r14, PORTB lds r16, ADDR cpse r16, r17 cbi PORTB, 5 in r13, PINB in r14, PORTB rjmp main