|
и еще проверь не переполняется ли у тебя стек вызовами процедур и прерываний, а также выключен ли WDT, если вкл, то сбрасываешь ли ты его в основном цикле ?
ORG 0x000 ; processor reset vector
clrf PCLATH ; ensure page bits are cleared
goto main ; go to beginning of program
;===============Модуль_обработки_перрываний============================
ORG 0x004 ;Вход всех прерываний.
movwf wtemp ;сохр W рег.
swapf STATUS,W ;сохранение
clrf STATUS ;статусного
movwf statmp ;регистра.
movf PCLATH,W ;сохранение
movwf ipcl ;расширителя переходов.
movf FSR,W ;сохранение
movwf tmpfsr ;рег. FSR.
clrf PCLATH ;
intc:
;здесь обработка прерываний итд...
endint:
clrf STATUS
movf tmpfsr,W ;
movwf FSR ;
movf ipcl,W ;востановление
movwf PCLATH ;расширителя переходов.
swapf statmp,W ;востановление
movwf STATUS ;регистров
swapf wtemp,F ;изм при обр прерываний.
swapf wtemp,W ;/
retfie ;выход из перрывания.
E-mail: info@telesys.ru