Od skoro sam poceo da ucim programiranje mikrokontrolera (uzeo sam za pocetak pic16f84),i zaboo sam kod interapata. Kod treba da radi sledece:glavni program treba da prikaze brojeve od 0-7 u binarnom zapisu na 3 LED PORTA a u interapt rutini treba da se uvecava brojac i da se proverava da li je doslo do prekoracenja. E sad,ja mislim da nisam lepo vratio vrednost brojaca iz interapt rutine u glavni program,ali nisam uspeo da provalim kako to da uradim pa molim za pomoc. Evo koda
list p=16f84 ;Definise upotrebljeni kontroler
#include <p16f84.inc> ;Ubacuje nazive registara u program
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;Podesava konfiguracione bitove
ORG 0X00 ;Definise start programa
TEMPW equ 0x0C ;Cuva W na 0x0C
BROJAC equ 0x0D ;Brojac
;Interapt rutina
org 0x00 ;Ovde PC dolazi po ckljucenju i resetu
goto Main ;Idi na glavni program
org 0x04 ;Ovde pocinje obrada interapta
movwf TEMPW ;Privremeno cuvanje W registra
incf BROJAC,F ;Uvecaj brojac
btfsc BROJAC,3 ;Testiraj treci bit BROJAC registra.Ako nije setovan preskoci sledecu instrukciju
clrf BROJAC ;Upisi 0 u brojac.Ako je brojac posle uvecanja preskocio dozvoljenu vrednost(7) sada 0,a ako nije sada je uvecan
movf TEMPW,W ;Vrati predhodni sadrzaj W registra
bcf INTCON,INTF ;Obrisi INTF-dozvoli nove interapte
retfie ;Kraj interapt rutine
;Glavni program-inicijalizacija
Main movlw b'10010000' ;bit 7 GIE-dozvoli interapte(1)
;bit 4 INTE-RB0 izabran za spoljasnji interapt(1)
;bit 1 INTF-interapt fleg resetovan(0)
movwf INTCON ;inicijalizuj INTCON registar
bsf STATUS,RP0 ;Prebaci program u Bank1
movlw 0x01 ;b'00000001' u TRISB
movwf TRISB ;RB0/INT kao ulaz,ostali kao izlaz
clrf TRISA ;Svi pinovi na PORTA su izlazni
bsf OPTION_REG,INTEDG ;Interapt pri rastucoj ivici signala
bcf OPTION_REG,NOT_RBPU ;Ukljuceni interni pull up otpornici na PORTB
bcf STATUS,RP0 ;Povratak u BANK0
clrf BROJAC ;Stavi 0 u BROJAC
;Glavni program-petlja
Pri movlw BROJAC ;Iz BROJACa u W
movwf PORTA ;a odatle u PORTA
goto Pri ;Vrati se na pocetak petlje
;Kraj programa
end ;Kraj programa
P.S.Uvek sija samo jedna led(na portu ra0)
Unapred hvala





Problem sa interaptima
