📄 sensorcomm.s51
字号:
MOV A,R0
ADD A,#(RepDatToSensorRec & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#((RepDatToSensorRec >> 8) & 0xff)
MOV DPH,A
MOVX A,@DPTR
MOV R2,A
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,R2
JNZ ??UpdateRepDatToSensorRec_2
MOV A,R6
MOV R0,A
MOV A,R7
MOV R1,A
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 1) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 1) >> 8) & 0xff)
MOV DPH,A
MOVX A,@DPTR
MOV R2,A
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,R2
JNZ ??UpdateRepDatToSensorRec_2
// 33 {
// 34 RepDatToSensorRec[i].lastRepTime=TickGet();
; Setup parameters for call to function halGetMACTimer
LCALL halGetMACTimer
MOV ?V0 + 0,R2
MOV ?V0 + 1,R3
MOV ?V0 + 2,R4
MOV ?V0 + 3,R5
MOV A,R6
MOV R0,A
MOV A,R7
MOV R1,A
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 2) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
MOV DPH,A
MOV R0,#?V0 + 0
LCALL ?L_MOV_TO_X
// 35 return ;
LJMP ??UpdateRepDatToSensorRec_3
// 36 }
// 37
// 38 if(RepDatToSensorRec[i].lastRepTime>maxTime)
??UpdateRepDatToSensorRec_2:
MOV A,R6
MOV R0,A
MOV A,R7
MOV R1,A
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 2) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
MOV DPH,A
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV R0,#?V0 + 0
MOV R1,#?V0 + 4
LCALL ?UL_GT
JNC ??UpdateRepDatToSensorRec_4
// 39 {
// 40 maxTime=RepDatToSensorRec[i].lastRepTime;
MOV A,R6
MOV R0,A
MOV A,R7
MOV R1,A
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 2) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
MOV DPH,A
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV ?V0 + 4,?V0 + 0
MOV ?V0 + 5,?V0 + 1
MOV ?V0 + 6,?V0 + 2
MOV ?V0 + 7,?V0 + 3
// 41 iTmp=i;
MOV A,R6
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX @DPTR,A
// 42 }
// 43 }
??UpdateRepDatToSensorRec_4:
MOV A,R6
ADD A,#0x1
MOV R6,A
MOV A,R7
ADDC A,#0x0
MOV R7,A
LJMP ??UpdateRepDatToSensorRec_0
// 44
// 45 RepDatToSensorRec[iTmp].SensorId[0]=lowId;
??UpdateRepDatToSensorRec_1:
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R0,A
MOV R1,#0x0
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#(RepDatToSensorRec & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#((RepDatToSensorRec >> 8) & 0xff)
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 46 RepDatToSensorRec[iTmp].SensorId[1]=hiId;
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R0,A
MOV R1,#0x0
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 1) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 1) >> 8) & 0xff)
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 47 RepDatToSensorRec[iTmp].lastRepTime=TickGet();
; Setup parameters for call to function halGetMACTimer
LCALL halGetMACTimer
MOV ?V0 + 0,R2
MOV ?V0 + 1,R3
MOV ?V0 + 2,R4
MOV ?V0 + 3,R5
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R0,A
MOV R1,#0x0
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 2) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
MOV DPH,A
MOV R0,#?V0 + 0
LCALL ?L_MOV_TO_X
// 48
// 49 }
??UpdateRepDatToSensorRec_3:
MOV A,#0x3
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 15)
MOV R7,#0x8
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock1
RSEG NEAR_CODE:CODE:NOROOT(0)
// 50 void ResetRepDatToSensorRec(void)
ResetRepDatToSensorRec:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function ResetRepDatToSensorRec
// 51 {
MOV A,#-0xb
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 11)
; Saved register size: 11
; Auto size: 0
// 52 int i;
// 53 for(i=0;i<MAXREPRECNUM;i++)
MOV R2,#0x0
MOV R3,#0x0
??ResetRepDatToSensorRec_0:
CLR C
MOV A,R2
SUBB A,#0x4
MOV A,R3
SUBB A,#0x0
MOV C,0xD0 /* PSW */.2
XRL A,PSW
RLC A
JC $+5
LJMP ??ResetRepDatToSensorRec_1
// 54 {
// 55 RepDatToSensorRec[i].SensorId[0]=0xff;
MOV A,#-0x1
PUSH A
CFI CFA_SP SP+-1
MOV A,R2
MOV R0,A
MOV A,R3
MOV R1,A
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R4,B
MOV B,#0x0
MUL AB
ADD A,R4
MOV R4,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R4
MOV R1,A
MOV A,R0
ADD A,#(RepDatToSensorRec & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#((RepDatToSensorRec >> 8) & 0xff)
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 56 RepDatToSensorRec[i].SensorId[1]=0xff;
MOV A,#-0x1
PUSH A
CFI CFA_SP SP+-1
MOV A,R2
MOV R0,A
MOV A,R3
MOV R1,A
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R4,B
MOV B,#0x0
MUL AB
ADD A,R4
MOV R4,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R4
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 1) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 1) >> 8) & 0xff)
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 57 RepDatToSensorRec[i].lastRepTime=0;
MOV DPTR,#__Constant_0
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV A,R2
MOV R0,A
MOV A,R3
MOV R1,A
MOV A,R0
MOV B,#0x6
MUL AB
XCH A,R0
MOV R4,B
MOV B,#0x0
MUL AB
ADD A,R4
MOV R4,A
MOV B,#0x6
MOV A,R1
MUL AB
ADD A,R4
MOV R1,A
MOV A,R0
ADD A,#((RepDatToSensorRec + 2) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
MOV DPH,A
MOV R0,#?V0 + 0
LCALL ?L_MOV_TO_X
// 58 }
MOV A,R2
ADD A,#0x1
MOV R2,A
MOV A,R3
ADDC A,#0x0
MOV R3,A
LJMP ??ResetRepDatToSensorRec_0
// 59 }
??ResetRepDatToSensorRec_1:
MOV R7,#0x4
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock2
RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_0:
DS 4
REQUIRE `?<Initializer for __Constant_0>`
REQUIRE __INIT_XDATA_I
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_0>`:
DD 0
END
// 60
// 61 ///////////////////////////////////////////////////////////////////////////
// 62
// 63
//
// 894 bytes in segment NEAR_CODE
// 4 bytes in segment XDATA_I
// 4 bytes in segment XDATA_ID
//
// 894 bytes of CODE memory (+ 4 bytes shared)
// 0 bytes of XDATA memory (+ 4 bytes shared)
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -