#DEFINE BUTTON_1 PORTA, 4
INTERRUPT:
;REDACTED
;------CHECK TIMER 1----------------;
;------AUTO POWER-OFF SELECTION-----;
;*********MAIN**************************
MAIN: ;REDACTED
BCF STATUS, C
RLF PATTERN_NUM, W
ADDWF PCL, F
NOP
NOP
CALL P1
GOTO MAIN_END
CALL P3
GOTO MAIN_END
CALL P4
GOTO MAIN_END
;REDACTED
MAIN_END
GOTO MAIN
;**********END 0F MAIN******************
P1: LOADF DISPLAY_TIME, .2
LOADF TOP_LUX, B'00000001'
LOADF MID_LUX, B'00000011'
LOADF LOW_LUX, B'00000011'
CALL SHOW_LUX
LOADF TOP_LUX, B'00000001'
LOADF MID_LUX, B'00000101'
LOADF LOW_LUX, B'00000101'
CALL SHOW_LUX
RETURN
;---------------------------------------
SHOW_LUX:
;REDACTED
CALL CHECK_BUTTON
RETURN
;=======================================
;SINGLE BUTTON WITH 4 FUNCTIONS.
;FUNCTION 1: TAP BUTTON FOR CHANGE PATTERN.
;FUNCTION 2: HOLD BUTTON FOR 0.5 SECONDS FOR POWER OFF.
;FUNCTION 3: HOLD BUTTON FOR 2.0 SECONDS FOR CONTINUOUS/CYCLE MODE.
;FUNCTION 4: HOLD BUTTON FOR 2.5 SECONDS FOR BRIGHT/DIM MODE.
CHECK_BUTTON:
CHB_0 BTFSS BUTTON_1 ;ACTIVE HIGH
RETURN
;---FUNCTION 1---CHANGING PATTERNS---;
FUNC1 ;REDACTED
GOTO MAIN
;-----END FUNCTION 1-----------------;
;---FUNCTION 2---POWER OFF-----------;
FUNC2 ;REDACTED
SLEEP
GOTO MAIN
;-----END FUNCTION 2-----------------;