Новичок
Регистрация: 17.08.2012
Сообщений: 6
Репутация: 10
![]() |
Уважаемый DmitriyVDN спасибо вам за помощь, но очень бы хотелось чтобы вы напоследок поделились отредактированным ASMом дабы я просто проанализировал, сравнив файлы и закончил свои хождения по мукам. С уважением Alex20000.
|
||
Оценка
|
Эксперт
Регистрация: 08.11.2009
Сообщений: 2,310
Репутация: 643
![]() ![]() ![]() ![]() ![]() ![]() |
поправить инициализацию
Код:
;--------------------------------------------------------------------------------------- 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 ;-------------------------------------------------------------------------------- |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |