;********************************************************
;	Megszakítás teszt
;********************************************************

#include <p16F690.inc>
	__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)


	cblock	0x20
DELAY1
DELAY2
DELAY3
Wtemp
STATUStemp
	endc


	
	goto MAINPROG
	nop
	nop
	nop
	org	4
	call INT

MAINPROG:
	banksel	TRISC
	movlw	B'11111100'		;PortC 0 és 1-es láb kimenet
	movwf	TRISC
	movlw     0xFF			;PortA bemenet
	movwf     TRISA         
	bsf	IOCA,3			;PortA portváltozás engedélyezés 3-as lábon
	bsf	INTCON,3		;PortA megszakítás engedélyezés
	bcf	INTCON,0		;Portmegszakítás jelző bit törlés
	bsf	INTCON,7		;Globális megszakítás engedélyezés
	banksel	ANSEL
	clrf     ANSEL			;PortA digitális bemenet

	



RE:	
	movlw	B'00000001'		;PortC 0-ás lábon LED világít
	movwf	PORTC
	nop
	nop
	nop
	goto	RE

INT:
	movwf	Wtemp		;W mentése Wtemp-be
	swapf	STATUS,w	;STATUS bitcserés másolása W-be
	movwf	STATUStemp	;W másolása STATUStemp-be

	movlw	B'00000010'	;PortC 1-es lábon világít egy LED
	movwf	PORTC
	
	movlw	0xFF		
	movwf	DELAY1
	movlw	0xFF
	movwf	DELAY2
	movlw	0x0A
	movwf	DELAY3
LOOP:
	decfsz	DELAY1		;késleltetés
	goto	LOOP
	decfsz	DELAY2
	goto	LOOP
	decfsz	DELAY3
	goto	LOOP

	bcf	INTCON,0	;Portmegszakítás jelzőbit törlése

	swapf	STATUStemp,w
	movwf	STATUS
	swapf	Wtemp,f
	swapf	Wtemp,w
	retfie
	
	end