;=======================================
ORG 4
INT_SERVE: ; 2
MOVWF TEMP_W
SWAPF STATUS,W
CLRF STATUS ; Select RAM BANK0
MOVWF TEMP_S
MOVF PCLATH,W
MOVWF TPCLATH
CLRF PCLATH
;--------------------------------------------------
BTFSC SELECT_PIN
INCF PHASE_CNT,F
BTFSS SELECT_PIN
DECF PHASE_CNT,F
;
CALL GET_PHASE ; 8
MOVWF PORTB
;--------------------------------------------------
UPD_TIMER:
BTFSS UPD_TMR_VAL
GOTO UPD_TIMER_END
BCF UPD_TMR_VAL
;
MOVF TMR_VAL,W
MOVWF CCPR1L
MOVF TMR_VAL+1,W
MOVWF CCPR1H
UPD_TIMER_END:
;--------------------------------------------------
INT_SERVE_END:
BCF PIR1,CCP1IF
;
MOVF TPCLATH,W
MOVWF PCLATH
SWAPF TEMP_S,W
MOVWF STATUS
SWAPF TEMP_W,F
SWAPF TEMP_W,W
;
RETFIE ; 2
;=======================================
GET_PHASE:
MOVF PHASE_CNT,W
ANDLW B'00000011'
ADDWF PCL,F
RETLW B'00000101'
RETLW B'00001001'
RETLW B'00001010'
RETLW B'00000110'
;--------------------------------------------------