|
Новичок
Регистрация: 17.08.2012
Сообщений: 6
Репутация: 10
![]() |
Уважаемый DmitriyVDN спасибо вам за помощь, но очень бы хотелось чтобы вы напоследок поделились отредактированным ASMом дабы я просто проанализировал, сравнив файлы и закончил свои хождения по мукам. С уважением Alex20000.
|
||
|
Эксперт
Регистрация: 08.11.2009
Сообщений: 2,309
Репутация: 645
![]() ![]() ![]() ![]() ![]() ![]() |
поправить инициализацию
Код:
;--------------------------------------------------------------------------------------- Reset CLRWDT ;Очистить сторожевой таймер и делитель BANKSEL OPTION_REG MOVLW M_O_INIT MOVWF OPTION_REG ;Инициализация OPTION MOVLW M_TB_INIT MOVWF TRISB ;Инициализация TRISB BANKSEL PORTB BCF PORTB,REZ ;Инициализация PORTB MOVLW M_I_INIT MOVWF INTCON ;Инициализация INTCON CLRF REG_FL ;REG_FL=0 Код:
; Обработчик прерывания
;---------------------------------------------------------------------------------------
Int_Prog
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
BTFSC INTCON,INTF ;Ring ?
BTFSS INTCON,INTE ;Запрещено INT ?
GOTO INT_1 ;Да
BCF INTCON,INTF ;Сброс запроса "звонок"
BSF REG_FL,Fl_Ring ;Fl_Ring=1
INT_1
BTFSC INTCON,RBIF ;Open ?
BTFSS INTCON,RBIE ;Запрещено RBI ?
GOTO INT_2 ;Да
MOVF PORTB,F ;Сброс запроса "open"
BCF INTCON,RBIF
BSF REG_FL,Fl_Open ;Fl_Open=1
INT_2
BTFSC INTCON,RTIF ;Переполнение таймера ?
BTFSS INTCON,RTIE ;Запрещено RTI ?
GOTO END_INT ;да
BCF INTCON,RTIF ;Сброс флага переполнения таймера
INCF Dl_Note,F ;Dl_Note=Dl_Note+1
END_INT
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
RETFIE
;--------------------------------------------------------------------------------
|
||
| Обратная связь РадиоЛоцман Вверх |