📄 hal_led.s51
字号:
??CrossCallReturnLabel_1:
LCALL ?L_MOV_TO_X
SJMP ??HalLedUpdate_8
// 294 }
// 295 else
// 296 {
// 297 /* no more blink, no more wait */
// 298 wait = 0;
??HalLedUpdate_7:
MOV R6,#0x0
MOV R7,#0x0
// 299 /* After blinking, set the LED back to the state before it blinks */
// 300 HalLedSet (led, ((preBlinkState & led)!=0)?HAL_LED_MODE_ON:HAL_LED_MODE_OFF);
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV DPTR,#??preBlinkState
MOV R2,A
MOVX A,@DPTR
ANL A,R2
JZ ??HalLedUpdate_9
MOV R2,#0x1
SJMP ??HalLedUpdate_10
??HalLedUpdate_9:
MOV R2,#0x0
??HalLedUpdate_10:
; Setup parameters for call to function HalLedSet
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#(HalLedSet & 0xffff)
MOV A,#((HalLedSet >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 301 /* Clear the saved bit */
// 302 preBlinkState &= ~led;
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
CPL A
MOV R2,A
MOV DPTR,#??preBlinkState
MOVX A,@DPTR
ANL A,R2
MOVX @DPTR,A
SJMP ??HalLedUpdate_8
// 303 }
// 304 }
// 305 else
// 306 {
// 307 wait = sts->next - time; /* Time left */
??HalLedUpdate_4:
MOV A,#0x6
LCALL ?XSTACK_DISP0_8
MOV R0,#?V0 + 4
LCALL ?L_MOV_X
MOV A,?V0 + 0
CLR C
SUBB A,?V0 + 4
MOV R6,A
MOV A,?V0 + 1
SUBB A,?V0 + 5
MOV R7,A
// 308 }
// 309
// 310 if (!next || ( wait && (wait < next) ))
??HalLedUpdate_8:
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
JNZ ??HalLedUpdate_11
INC DPTR
MOVX A,@DPTR
??HalLedUpdate_11:
JZ ??HalLedUpdate_12
MOV A,R6
JNZ ??HalLedUpdate_13
MOV A,R7
??HalLedUpdate_13:
JZ ??HalLedUpdate_3
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
CLR C
MOV A,R6
SUBB A,R0
MOV A,R7
SUBB A,R1
JNC ??HalLedUpdate_3
// 311 {
// 312 next = wait;
??HalLedUpdate_12:
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
// 313 }
// 314 }
// 315 leds ^= led;
??HalLedUpdate_3:
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R2,A
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,R2
MOVX @DPTR,A
// 316 }
// 317 led <<= 1;
??HalLedUpdate_2:
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
CLR C
RLC A
MOVX @DPTR,A
// 318 sts++;
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
ADD A,#0x9
MOV R0,A
INC DPTR
MOVX A,@DPTR
ADDC A,#0x0
MOV R1,A
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
MOV A,R0
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
// 319 }
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
JZ $+5
LJMP ??HalLedUpdate_1 & 0xFFFF
// 320
// 321 if (next)
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
JNZ ??HalLedUpdate_14
INC DPTR
MOVX A,@DPTR
??HalLedUpdate_14:
JZ ??HalLedUpdate_0
// 322 {
// 323 osal_start_timer (HAL_LED_BLINK_EVENT, next); /* Schedule event */
; Setup parameters for call to function osal_start_timer
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
MOV R2,#0x2
MOV R3,#0x0
MOV DPTR,#(osal_start_timer & 0xffff)
MOV A,#((osal_start_timer >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 324 }
// 325 }
// 326 }
??HalLedUpdate_0:
MOV A,#0xa
LJMP ?Subroutine11 & 0xFFFF
CFI EndBlock cfiBlock7
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine7:
CFI Block cfiCond8 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_13
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 26)
CFI Block cfiCond9 Using cfiCommon0
CFI (cfiCond9) NoFunction
CFI (cfiCond9) Conditional ??CrossCallReturnLabel_12
CFI (cfiCond9) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond9) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond9) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond9) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond9) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond9) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond9) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond9) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond9) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond9) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond9) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond9) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond9) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond9) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond9) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond9) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond9) CFA_SP SP+0
CFI (cfiCond9) CFA_XSP16 add(XSP16, 26)
CFI Block cfiPicker10 Using cfiCommon1
CFI (cfiPicker10) NoFunction
CFI (cfiPicker10) Picker
INC DPTR
MOVX A,@DPTR
MOV DPH,A
MOV DPL,R0
INC DPTR
INC DPTR
MOVX A,@DPTR
RET
CFI EndBlock cfiCond8
CFI EndBlock cfiCond9
CFI EndBlock cfiPicker10
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine5:
CFI Block cfiCond11 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_8
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 26)
CFI Block cfiCond12 Using cfiCommon0
CFI (cfiCond12) NoFunction
CFI (cfiCond12) Conditional ??CrossCallReturnLabel_9
CFI (cfiCond12) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond12) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond12) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond12) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond12) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond12) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond12) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond12) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond12) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond12) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond12) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond12) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond12) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond12) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond12) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond12) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond12) CFA_SP SP+0
CFI (cfiCond12) CFA_XSP16 add(XSP16, 26)
CFI Block cfiCond13 Using cfiCommon0
CFI (cfiCond13) NoFunction
CFI (cfiCond13) Conditional ??CrossCallReturnLabel_7
CFI (cfiCond13) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond13) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond13) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond13) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond13) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond13) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond13) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond13) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond13) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond13) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond13) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond13) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond13) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond13) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond13) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond13) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond13) CFA_SP SP+0
CFI (cfiCond13) CFA_XSP16 add(XSP16, 26)
CFI Block cfiPicker14 Using cfiCommon1
CFI (cfiPicker14) NoFunction
CFI (cfiPicker14) Picker
LCALL ?Subroutine8 & 0xFFFF
??CrossCallReturnLabel_17:
RET
CFI EndBlock cfiCond11
CFI EndBlock cfiCond12
CFI EndBlock cfiCond13
CFI EndBlock cfiPicker14
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine8:
CFI Block cfiCond15 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_17, ??CrossCallReturnLabel_8
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -