All pastes #825525 Raw Edit

Miscellany

public text v1 · immutable
#825525 ·published 2007-12-20 17:17 UTC
rendered paste body
	.include "m128def.inc"
	.org $0000
		rjmp RESET
	.org INT0addr
		rjmp INTv
	.org INT1addr
		rjmp INTv
	.org INT2addr
		rjmp INTv
	.org $0046

	RESET:
		; inicijaliziramo stack
		ldi r16, LOW(RAMEND)
		out SPL, r16
		ldi r16, HIGH(RAMEND)
		out SPH, r16
		; omogucimo interrupt
		sei

	MAIN:
		rjmp MAIN

	; INTx vektor - odredi koju rutinu pozvati
	INTv:
		in r0, GICR
		; prebaci u r16 da mozemo koristit cpi
		mov r16, r0
		cpi r16, 1 ; int0?
		breq INT0POZIV
		cpi r16, 2 ; int1?
		breq INT1POZIV
		cpi r16, 4 ; int2?
		breq INT2POZIV
		rjmp INTvKRAJ

	INT0POZIV:
		; da li se obraduje visi prioritet?
		mov r16, r15
		cpi r16, 2
		brge INTvKRAJ
		ldi r16, 1
		mov r15, r16
		sei
		rcall INT00
		rjmp INTvKRAJ

	INT1POZIV:
		; da li se obraduje visi prioritet?
		mov r16, r15
		cpi r16, 3
		brge INTvKRAJ
		ldi r16, 2
		mov r15, r16
		sei
		rcall INT01
		rjmp INTvKRAJ

	INT2POZIV:
		ldi r16, 3
		mov r15, r16
		sei
		rcall INT02

	INTvKRAJ:
		reti

	INT00:
		nop
		nop
		nop
		nop
		nop
		inc r10
		clr r15
		ret

	INT01:
		nop
		nop
		nop
		nop
		nop
		inc r11
		clr r15
		ret

	INT02:
		nop
		nop
		nop
		nop
		nop
		inc r12
		clr r15
		ret