timer.s
author Tero Marttila <terom@paivola.fi>
Mon, 21 Apr 2014 00:20:27 +0300
changeset 82 b5878197d017
parent 29 453550e69e07
permissions -rw-r--r--
dmx-web: change dmx layout for more light types
.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