



.include "p24HJ64GP206A.inc"
config __FOSCSEL,FNOSC_FRCPLL
config __FWDT, FWDTEN_OFF
.global __reset


;*******[ Változó deklaráció]**************************************************
.bss
FLAG: .space 2		;FLAG

.global __INT0Interrupt    ;Declare INT0 ISR name global


.text

;*******[ PROGRAMKÓD KEZDETE ]**************************************************
__reset:

main:
	mov		#0xFFFF,W0
	mov 	W0,AD1PCFGL
	mov		#0xFFFF,W0
	mov 	W0,AD1PCFGH
	mov		#0x29,W0		; *43 (41+2)
	mov 	W0,PLLFBD
	bclr	CLKDIV,#6		; /2


	mov 	#0xFFFF,W0		; 
	mov 	W0,TRISB	

		
	mov 	#0xFFFD,W0		; RC1 ki
	mov 	W0,TRISC	
	mov 	#0xF0FF,W0		; RD8 ki, RD9 ki, RD10 ki, RD11 ki
	mov 	W0,TRISD	
	mov 	#0xFFF3,W0		; RF2 ki, RF3 ki, RF6 be
	mov 	W0,TRISF	
	mov 	#0x4FBF,W0		; RG6 ki, RG12 ki, RG13 KI (IRDA LED),RG15 KI, 
	mov 	W0,TRISG	


	bset	IEC0,#0			; külso megszakítus engedélyezve
	bset	INTCON2,#0		; INT0 negatív élre megszakít



;*******[ KIINDULÁSI PONT ]**************************************************

start:
	bclr	LATG,#12
	bclr	FLAG,#0

W_1:
	btss	FLAG,#0		; Várja, hogy a FLAG0 a megszakításban 1-re váltson
	bra		W_1

F_2:
	mov 	#0x41A,W2
F_21:
	btss	FLAG,#0		; Ha megszakítás jön FLAG0 0-ra vált, akkor RESET
	goto	start
	dec 	W2,W2
	bra 	NZ,F_21

EREDMENY:
	bset	LATG,#12	; LED világít
	call	delay
	bra		start

;*******[ Megszakítás kezelő rutin KEZDETE ]************************************
__INT0Interrupt:
	btg		FLAG,#0
Kilep:
	bclr	IFS0,#0		;INT0 FLAG törlés
	retfie

;*******[ SUBRUTINOK KEZDETE ]************************************
delay:
	mov 	#0x0,W6
	mov 	#0x2F,W5
dloop: 
	dec 	W6,W6
	bra 	NZ,dloop
	dec 	W5,W5
	bra 	NZ,dloop
	return




	.end