📄 hal_timer.s51
字号:
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 353 if (!halTimerRecord[HW_TIMER_1].intEnable)
MOV DPTR,#(??halTimerRecord + 1)
MOVX A,@DPTR
JNZ ??HalTimerTick_0
// 354 {
// 355 halProcessTimer1 ();
; Setup parameters for call to function halProcessTimer1
MOV DPTR,#(halProcessTimer1 & 0xffff)
MOV A,#((halProcessTimer1 >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 356 }
// 357
// 358 if (!halTimerRecord[HW_TIMER_3].intEnable)
??HalTimerTick_0:
MOV DPTR,#(??halTimerRecord + 12)
MOVX A,@DPTR
JNZ ??HalTimerTick_1
// 359 {
// 360 halProcessTimer3 ();
; Setup parameters for call to function halProcessTimer3
MOV DPTR,#(halProcessTimer3 & 0xffff)
MOV A,#((halProcessTimer3 >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 361 }
// 362
// 363 if (!halTimerRecord[HW_TIMER_4].intEnable)
??HalTimerTick_1:
MOV DPTR,#(??halTimerRecord + 23)
MOVX A,@DPTR
JNZ ??HalTimerTick_2
// 364 {
// 365 halProcessTimer4 ();
; Setup parameters for call to function halProcessTimer4
MOV DPTR,#(halProcessTimer4 & 0xffff)
MOV A,#((halProcessTimer4 >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 366 }
// 367 }
??HalTimerTick_2:
LJMP ?Subroutine13 & 0xFFFF
CFI EndBlock cfiBlock17
// 368
// 369 /***************************************************************************************************
// 370 * @fn HalTimerStop
// 371 *
// 372 * @brief Stop the Timer Service
// 373 *
// 374 * @param timerId - ID of the timer
// 375 *
// 376 * @return Status - OK or Not OK
// 377 ***************************************************************************************************/
RSEG BANKED_CODE:CODE:NOROOT(0)
// 378 uint8 HalTimerStop (uint8 timerId)
HalTimerStop:
CFI Block cfiBlock18 Using cfiCommon0
CFI Function HalTimerStop
// 379 {
FUNCALL HalTimerStop, halTimerRemap
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL HalTimerStop, halTimerSetOpMode
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 380 uint8 hwtimerid;
// 381
// 382 hwtimerid = halTimerRemap (timerId);
// 383
// 384 switch (hwtimerid)
; Setup parameters for call to function halTimerRemap
MOV DPTR,#(halTimerRemap & 0xffff)
MOV A,#((halTimerRemap >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R1
LCALL ?UC_SWITCH_DENSE
`?<Jumptable for HalTimerStop>_0`:
DB 0
DB 2
DW ??HalTimerStop_0
DW ??HalTimerStop_1
DW ??HalTimerStop_2
DW ??HalTimerStop_3
// 385 {
// 386 case HW_TIMER_1:
// 387 halTimerSetOpMode(HW_TIMER_1, HAL_TIMER_MODE_STOP);
??HalTimerStop_1:
; Setup parameters for call to function halTimerSetOpMode
MOV R2,#0x3
MOV R1,#0x0
MOV DPTR,#(halTimerSetOpMode & 0xffff)
MOV A,#((halTimerSetOpMode >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 388 break;
// 389 case HW_TIMER_3:
// 390 T3CTL &= ~(HAL_TIMER34_START);
// 391 break;
// 392 case HW_TIMER_4:
// 393 T4CTL &= ~(HAL_TIMER34_START);
// 394 break;
// 395 default:
// 396 return HAL_TIMER_INVALID_ID;
// 397 }
// 398 return HAL_TIMER_OK;
??HalTimerStop_4:
MOV R1,#0x0
??HalTimerStop_5:
LJMP ?Subroutine13 & 0xFFFF
??HalTimerStop_2:
ANL 0xcb,#0xef
SJMP ??HalTimerStop_4
??HalTimerStop_3:
ANL 0xeb,#0xef
SJMP ??HalTimerStop_4
??HalTimerStop_0:
MOV R1,#0x4
SJMP ??HalTimerStop_5
CFI EndBlock cfiBlock18
// 399 }
// 400
// 401 /***************************************************************************************************
// 402 * @fn halTimerSetCount
// 403 *
// 404 * @brief Stop the Timer Service
// 405 *
// 406 * @param hwtimerid - ID of the timer
// 407 * timerPerTick - Number micro sec per ticks
// 408 *
// 409 * @return Status - OK or Not OK
// 410 ***************************************************************************************************/
RSEG BANKED_CODE:CODE:NOROOT(0)
// 411 uint8 halTimerSetCount (uint8 hwtimerid, uint32 timePerTick)
halTimerSetCount:
CFI Block cfiBlock19 Using cfiCommon0
CFI Function halTimerSetCount
// 412 {
MOV A,#-0x10
LCALL ?BANKED_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 16)
; Saved register size: 16
; Auto size: 0
MOV ?V0 + 4,R2
MOV ?V0 + 5,R3
MOV ?V0 + 6,R4
MOV ?V0 + 7,R5
// 413 uint16 count;
// 414 uint8 high, low;
// 415
// 416 /* Load count = ((sec/tick) x clock) / prescale */
// 417 count = (uint16)((timePerTick * halTimerRecord[hwtimerid].clock) / halTimerRecord[hwtimerid].prescaleVal);
MOV DPL,R1
MOV R2,DPL
MOV A,R2
MOV B,#0xb
MUL AB
ADD A,#(??halTimerRecord & 0xff)
MOV R4,A
MOV A,B
ADDC A,#((??halTimerRecord >> 8) & 0xff)
MOV R5,A
MOV DPL,R4
MOV DPH,R5
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV ?V0 + 0,A
MOV ?V0 + 1,#0x0
MOV ?V0 + 2,#0x0
MOV ?V0 + 3,#0x0
MOV R0,#?V0 + 4
MOV R1,#?V0 + 0
LCALL ?L_MUL
MOV DPL,R4
MOV DPH,R5
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV ?V0 + 0,A
MOV R0,#?V0 + 4
MOV R1,#?V0 + 0
LCALL ?UL_DIV_MOD
// 418 high = (uint8) (count >> 8);
// 419 low = (uint8) count;
// 420
// 421 *(halTimerChannel[hwtimerid].TxCCH) = high;
MOV A,R2
LCALL ?Subroutine6 & 0xFFFF
??CrossCallReturnLabel_28:
INC DPTR
INC DPTR
LCALL ?Subroutine9 & 0xFFFF
??CrossCallReturnLabel_34:
MOV A,?V0 + 5
LCALL ?Subroutine1 & 0xFFFF
// 422 *(halTimerChannel[hwtimerid].TxCCL) = low;
??CrossCallReturnLabel_14:
LCALL ?Subroutine12 & 0xFFFF
??CrossCallReturnLabel_40:
MOV A,?V0 + 4
MOVX @DPTR,A
// 423
// 424 return HAL_TIMER_OK;
MOV R1,#0x0
LJMP ?Subroutine14 & 0xFFFF
CFI EndBlock cfiBlock19
// 425 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine1:
CFI Block cfiCond20 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_13
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V6 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, 15)
CFI Block cfiCond21 Using cfiCommon0
CFI (cfiCond21) NoFunction
CFI (cfiCond21) Conditional ??CrossCallReturnLabel_12
CFI (cfiCond21) R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond21) VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond21) V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond21) V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond21) V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond21) V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond21) V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond21) V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond21) V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond21) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond21) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond21) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond21) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond21) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond21) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond21) CFA_SP SP+0
CFI (cfiCond21) CFA_XSP16 add(XSP16, 15)
CFI Block cfiCond22 Using cfiCommon0
CFI (cfiCond22) NoFunction
CFI (cfiCond22) Conditional ??CrossCallReturnLabel_14
CFI (cfiCond22) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond22) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond22) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond22) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond22) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond22) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond22) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond22) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond22) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond22) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond22) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond22) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond22) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond22) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond22) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond22) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond22) CFA_SP SP+0
CFI (cfiCond22) CFA_XSP16 add(XSP16, 16)
CFI Block cfiPicker23 Using cfiCommon1
CFI (cfiPicker23) NoFunction
CFI (cfiPicker23) Picker
LCALL ?Subroutine11 & 0xFFFF
??CrossCallReturnLabel_39:
INC DPTR
RET
CFI EndBlock cfiCond20
CFI EndBlock cfiCond21
CFI EndBlock cfiCond22
CFI EndBlock cfiPicker23
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine11:
CFI Block cfiCond24 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_39, ??CrossCallReturnLabel_12
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -