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