terom@29: .nolist terom@29: .include "m168def.inc" ; Same family as 328P terom@29: .list terom@29: terom@29: ;; Interrupt Vector terom@29: .org 0x00 terom@29: rjmp init terom@29: terom@29: .org OC1Aaddr terom@29: ; Timer/Counter1 Compare Output A terom@29: rjmp Timer_OC1A terom@29: terom@29: .org OC0Aaddr terom@29: ; Timer/Counter0 Compare Output A terom@29: rjmp Timer_OC0A terom@29: terom@29: .org 0x40 terom@29: terom@29: ;; Syntax terom@29: .include "macros.inc" terom@29: terom@29: ;; Timer0 Compare A handler terom@29: Tick: terom@29: ; Toggle terom@29: sbi PIND, PORTD7 terom@29: terom@29: ret terom@29: terom@29: ;; Timer terom@29: .set TIMER0_CB_A = Tick terom@29: .include "timer.inc" terom@29: terom@29: Main: terom@29: init: terom@29: ; Stack terom@29: ldi r16, high(RAMEND) terom@29: ldi r17, low(RAMEND) terom@29: out SPH, r16 terom@29: out SPL, r17 terom@29: terom@29: ; Enable interrupts terom@29: sei terom@29: terom@29: ; Turn off LED7 terom@29: sbi DDRB, PORTB1 terom@29: sbi PORTB, PORTB1 terom@29: terom@29: terom@29: ; DEBUG terom@29: sbi DDRD, PORTD7 terom@29: cbi PORTD, PORTD7 terom@29: terom@29: sbi DDRD, PORTD6 terom@29: sbi DDRD, PORTD5 terom@29: terom@29: terom@29: ; Timer terom@29: ; setup terom@29: rcall Timer0_Init terom@29: terom@29: ; run with 255k cycles terom@29: ldi r16, 255 terom@29: rcall Timer0_Start terom@29: terom@29: loop: terom@29: ; Run timer terom@29: rjmp loop terom@29: