📄 inter.inc
字号:
; isr code can go here or be located as a call subroutine elsewhere
;**********************************************************
;interrupt codes
;**********************************************************
Interrupt_Begin:
;==========================================================
banksel PORTA
btfss INTCON,T0IF
goto TMR0_Interrupt_Over
bcf INTCON,T0IF
movlw d'184'
addwf TMR0,F
btfsc RF_FRAME_GET
goto Interrupt_Over
btfsc RF_FRAME_RECIEVE
goto Get_Frame_Begin
btfsc RECIEVE_PORT
goto Recieve_High
Recieve_Low:
incf Preamble_Low_Counter,F
bsf PASS_LOW
goto Interrupt_Over
Recieve_High:
btfss PASS_LOW
goto Recieve_High_Jump
bcf PASS_LOW
movlw d'3'
subwf Preamble_High_Counter,W
skpc
goto Preamble_Counter_Clr
movlw d'9'
subwf Preamble_High_Counter,W
skpnc
goto Preamble_Counter_Clr
movlw d'25'
subwf Preamble_Low_Counter,W
skpnc
goto Preamble_Last_Get
movlw d'3'
subwf Preamble_Low_Counter,W
skpc
goto Preamble_Counter_Clr
movlw d'9'
subwf Preamble_Low_Counter,W
skpnc
goto Preamble_Counter_Clr
Preamble_Get:
incf Preamble_Counter,F
goto Preamble_Clr
Preamble_Last_Get:
movlw d'9'
subwf Preamble_Counter,W
skpc
goto Preamble_Counter_Clr
movlw d'65'
movwf Frame_Bit_Counter
clrf Preamble_Counter
bsf RF_FRAME_RECIEVE
clrf Frame_Buff9
clrf Frame_Buff8
clrf Frame_Buff7
clrf Frame_Buff6
clrf Frame_Buff5
clrf Frame_Buff4
clrf Frame_Buff3
clrf Frame_Buff2
clrf Frame_Buff1
Preamble_Counter_Clr:
clrf Preamble_Counter
Preamble_Clr:
clrf Preamble_High_Counter
clrf Preamble_Low_Counter
Recieve_High_Jump:
incf Preamble_High_Counter,F
goto Interrupt_Over
;==========================================================
Get_Frame_Begin:
btfsc RECIEVE_PORT
goto Get_Frame_Port_High
Get_Frame_Port_Low:
incf Preamble_Low_Counter,F
bsf PASS_LOW
goto Get_Frame_Over
Get_Frame_Port_High:
btfss PASS_LOW
goto Get_Frame_High_Jump
movf Preamble_High_Counter,W
addwf Preamble_Low_Counter,F
movlw d'12'
subwf Preamble_Low_Counter,W
skpc
goto Get_Frame_Over
movlw d'22'
subwf Preamble_Low_Counter,W
skpnc
goto Get_Frame_Over
bcf PASS_LOW
bcf Frame_Buff9,7
movlw d'8'
subwf Preamble_High_Counter,W
skpc
bsf Frame_Buff9,7
call Recieve_Buff_RRF
clrf Preamble_High_Counter
clrf Preamble_Low_Counter
decfsz Frame_Bit_Counter,F
goto Get_Frame_High_Jump
call Recieve_Buff_RRF
call Recieve_Buff_RRF
call Recieve_Buff_RRF
call Recieve_Buff_RRF
call Recieve_Buff_RRF
call Recieve_Buff_RRF
bcf RF_FRAME_RECIEVE
bsf RF_FRAME_GET
Get_Frame_High_Jump:
incf Preamble_High_Counter,F
goto Get_Frame_Over
Get_Frame_Over:
goto Interrupt_Over
TMR0_Interrupt_Over:
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
btfss PIR1,TMR1IF
goto TMR1_Interrupt_Over
bcf PIR1,TMR1IF
movlw d'158'
addwf TMR1H,F
movlw d'88'
addwf TMR1L,F
bsf MAIN_CHECK
goto Interrupt_Over
TMR1_Interrupt_Over:
;==========================================================
movlw b'11100000'
andwf INTCON,F
clrf PIR1
bsf STATUS,RP0
movlw b'00000011'
movwf PIE1
bcf STATUS,RP0
;**********************************************************
;Interrupt over
;**********************************************************
Interrupt_Over:
return
;**********************************************************
;**********************************************************
Recieve_Buff_RRF:
rrf Frame_Buff9,F
rrf Frame_Buff8,F
rrf Frame_Buff7,F
rrf Frame_Buff6,F
rrf Frame_Buff5,F
rrf Frame_Buff4,F
rrf Frame_Buff3,F
rrf Frame_Buff2,F
rrf Frame_Buff1,F
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -