📄 node.lst
字号:
141
142 va_start(ap, format);
\ 00000A 748C MOV A,#-0x74
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
\ 00000F A882 MOV R0,DPL
\ 000011 A983 MOV R1,DPH
\ 000013 85..82 MOV DPL,?XSP + 0
\ 000016 85..83 MOV DPH,?XSP + 1
\ 000019 E8 MOV A,R0
\ 00001A F0 MOVX @DPTR,A
\ 00001B A3 INC DPTR
\ 00001C E9 MOV A,R1
\ 00001D F0 MOVX @DPTR,A
143 // vsprintf is a variant of sprintf which taking a va_list as arguemnt */
144 nbrOfChars = vsprintf((char*)&sendBuffer[2], format, ap);
\ 00001E ; Setup parameters for call to function vsprintf
\ 00001E 85..82 MOV DPL,?XSP + 0
\ 000021 85..83 MOV DPH,?XSP + 1
\ 000024 8582.. MOV ?V0 + 0,DPL
\ 000027 8583.. MOV ?V0 + 1,DPH
\ 00002A 78.. MOV R0,#?V0 + 0
\ 00002C 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00002F EA MOV A,R2
\ 000030 FC MOV R4,A
\ 000031 EB MOV A,R3
\ 000032 FD MOV R5,A
\ 000033 7406 MOV A,#0x6
\ 000035 12.... LCALL ?XSTACK_DISP0_8
\ 000038 AA82 MOV R2,DPL
\ 00003A AB83 MOV R3,DPH
\ 00003C 90.... MOV DPTR,#(vsprintf & 0xffff)
\ 00003F 74.. MOV A,#((vsprintf >> 16) & 0xff)
\ 000041 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000044 7402 MOV A,#0x2
\ 000046 12.... LCALL ?DEALLOC_XSTACK8
145 va_end(ap);
146
147 sendBuffer[0] = PACKET_TYPE_DEBUG_TEXT;
\ 000049 7402 MOV A,#0x2
\ 00004B 12.... LCALL ?XSTACK_DISP0_8
\ 00004E 7430 MOV A,#0x30
\ 000050 F0 MOVX @DPTR,A
148 sendBuffer[1] = nbrOfChars + 1;
\ 000051 7401 MOV A,#0x1
\ 000053 2A ADD A,R2
\ 000054 C0E0 PUSH A
\ 000056 7403 MOV A,#0x3
\ 000058 12.... LCALL ?XSTACK_DISP0_8
\ 00005B D0E0 POP A
\ 00005D F0 MOVX @DPTR,A
149 DataRequest(PC_SHORT, nbrOfChars + 3, sendBuffer);
\ 00005E ; Setup parameters for call to function DataRequest
\ 00005E 7402 MOV A,#0x2
\ 000060 12.... LCALL ?XSTACK_DISP0_8
\ 000063 AC82 MOV R4,DPL
\ 000065 AD83 MOV R5,DPH
\ 000067 7403 MOV A,#0x3
\ 000069 2A ADD A,R2
\ 00006A F9 MOV R1,A
\ 00006B 7A34 MOV R2,#0x34
\ 00006D 7B12 MOV R3,#0x12
\ 00006F 90.... MOV DPTR,#(DataRequest & 0xffff)
\ 000072 74.. MOV A,#((DataRequest >> 16) & 0xff)
\ 000074 12.... LCALL ?BCALL ; Banked call to: DPTR()
150 }
\ 000077 7482 MOV A,#-0x7e
\ 000079 REQUIRE ?Subroutine0
\ 000079 ; // Fall through to label ?Subroutine0
151
152
153 /******************************************************************************
154 *
155 * Add _msec_ number of milliseconds to sleep timer.
156 * Using 33 Hz insted of 32.768 Hz for the RC osc.
157 ******************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
158 void AddToSleepTimer(UINT16 msec)
\ AddToSleepTimer:
159 {
\ 000000 74F0 MOV A,#-0x10
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 4
\ 000005 74FC MOV A,#-0x4
\ 000007 12.... LCALL ?ALLOC_XSTACK8
160 UINT32 sleepTimer;
161
162 sleepTimer = ST0;
\ 00000A E595 MOV A,0x95
\ 00000C 85..82 MOV DPL,?XSP + 0
\ 00000F 85..83 MOV DPH,?XSP + 1
\ 000012 F0 MOVX @DPTR,A
\ 000013 A3 INC DPTR
\ 000014 E4 CLR A
\ 000015 F0 MOVX @DPTR,A
\ 000016 A3 INC DPTR
\ 000017 F0 MOVX @DPTR,A
\ 000018 A3 INC DPTR
\ 000019 F0 MOVX @DPTR,A
163 sleepTimer |= (UINT32)ST1 << 8;
\ 00001A 8596.. MOV ?V0 + 0,0x96
\ 00001D F5.. MOV ?V0 + 1,A
\ 00001F F5.. MOV ?V0 + 2,A
\ 000021 F5.. MOV ?V0 + 3,A
\ 000023 7408 MOV A,#0x8
\ 000025 78.. MOV R0,#?V0 + 0
\ 000027 12.... LCALL ?L_SHL
\ 00002A 85..82 MOV DPL,?XSP + 0
\ 00002D 85..83 MOV DPH,?XSP + 1
\ 000030 78.. MOV R0,#?V0 + 0
\ 000032 12.... LCALL ?L_IOR_TO_X
164 sleepTimer |= (UINT32)ST2 << 16;
\ 000035 8597.. MOV ?V0 + 0,0x97
\ 000038 75..00 MOV ?V0 + 1,#0x0
\ 00003B 7410 MOV A,#0x10
\ 00003D 78.. MOV R0,#?V0 + 0
\ 00003F 12.... LCALL ?L_SHL
\ 000042 85..82 MOV DPL,?XSP + 0
\ 000045 85..83 MOV DPH,?XSP + 1
\ 000048 78.. MOV R0,#?V0 + 0
\ 00004A 12.... LCALL ?L_IOR_TO_X
165
166 sleepTimer += ((UINT32)msec * (UINT32)33); // 32 768 kHz ~ 33 each mSecond
\ 00004D 8A.. MOV ?V0 + 0,R2
\ 00004F 8B.. MOV ?V0 + 1,R3
\ 000051 75..00 MOV ?V0 + 2,#0x0
\ 000054 90.... MOV DPTR,#__Constant_21
\ 000057 78.. MOV R0,#?V0 + 4
\ 000059 12.... LCALL ?L_MOV_X
\ 00005C 78.. MOV R0,#?V0 + 0
\ 00005E 79.. MOV R1,#?V0 + 4
\ 000060 12.... LCALL ?L_MUL
\ 000063 85..82 MOV DPL,?XSP + 0
\ 000066 85..83 MOV DPH,?XSP + 1
\ 000069 78.. MOV R0,#?V0 + 0
\ 00006B 12.... LCALL ?L_ADD_TO_X
167
168 if(sleepTimer > 0x00FFFFFF){
\ 00006E 85..82 MOV DPL,?XSP + 0
\ 000071 85..83 MOV DPH,?XSP + 1
\ 000074 C082 PUSH DPL
\ 000076 C083 PUSH DPH
\ 000078 90.... MOV DPTR,#__Constant_1000000
\ 00007B 78.. MOV R0,#?V0 + 0
\ 00007D 12.... LCALL ?L_MOV_X
\ 000080 D083 POP DPH
\ 000082 D082 POP DPL
\ 000084 78.. MOV R0,#?V0 + 0
\ 000086 12.... LCALL ?UL_GT_X
\ 000089 4013 JC ??AddToSleepTimer_0
169 sleepTimer -= 0x00FFFFFF;
\ 00008B 90.... MOV DPTR,#__Constant_ff000001
\ 00008E 78.. MOV R0,#?V0 + 0
\ 000090 12.... LCALL ?L_MOV_X
\ 000093 85..82 MOV DPL,?XSP + 0
\ 000096 85..83 MOV DPH,?XSP + 1
\ 000099 78.. MOV R0,#?V0 + 0
\ 00009B 12.... LCALL ?L_ADD_TO_X
170 }
171
172 ST2 = (UINT8)(sleepTimer >> 16);
\ ??AddToSleepTimer_0:
\ 00009E 85..82 MOV DPL,?XSP + 0
\ 0000A1 85..83 MOV DPH,?XSP + 1
\ 0000A4 78.. MOV R0,#?V0 + 0
\ 0000A6 12.... LCALL ?L_MOV_X
\ 0000A9 7410 MOV A,#0x10
\ 0000AB 78.. MOV R0,#?V0 + 0
\ 0000AD 12.... LCALL ?UL_SHR
\ 0000B0 E5.. MOV A,?V0 + 0
\ 0000B2 F597 MOV 0x97,A
173 ST1 = (UINT8)(sleepTimer >> 8);
\ 0000B4 85..82 MOV DPL,?XSP + 0
\ 0000B7 85..83 MOV DPH,?XSP + 1
\ 0000BA 78.. MOV R0,#?V0 + 0
\ 0000BC 12.... LCALL ?L_MOV_X
\ 0000BF E5.. MOV A,?V0 + 1
\ 0000C1 F596 MOV 0x96,A
174 ST0 = (UINT8) sleepTimer;
\ 0000C3 E5.. MOV A,?V0 + 0
\ 0000C5 F595 MOV 0x95,A
175 }
\ 0000C7 7404 MOV A,#0x4
\ 0000C9 12.... LCALL ?DEALLOC_XSTACK8
\ 0000CC 7F08 MOV R7,#0x8
\ 0000CE 02.... LJMP ?BANKED_LEAVE_XDATA
176
177 #ifdef CC2430EB
178 /******************************************************************************
179 *
180 * Print X and Y on LCD display, can only be used on SmartRF04EB
181 ******************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
182 void PrintXY(void){
\ PrintXY:
\ 000000 74F6 MOV A,#-0xa
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 10
\ 000005 ; Auto size: 16
\ 000005 74F0 MOV A,#-0x10
\ 000007 12.... LCALL ?ALLOC_XSTACK8
183 char s[16];
184 sprintf(s, "X: %d.%d", UINT16_2_INT(x), FRAC_2_TO_DEC(x));
\ 00000A 90.... MOV DPTR,#x
\ 00000D E0 MOVX A,@DPTR
\ 00000E 5403 ANL A,#0x3
\ 000010 6403 XRL A,#0x3
\ 000012 7005 JNZ ??PrintXY_0
\ 000014 75..4B MOV ?V0 + 0,#0x4b
\ 000017 8017 SJMP ??PrintXY_1
\ ??PrintXY_0:
\ 000019 E0 MOVX A,@DPTR
\ 00001A 5402 ANL A,#0x2
\ 00001C 6005 JZ ??PrintXY_2
\ 00001E 75..32 MOV ?V0 + 0,#0x32
\ 000021 800D SJMP ??PrintXY_1
\ ??PrintXY_2:
\ 000023 E0 MOVX A,@DPTR
\ 000024 A2E0 MOV C,0xE0 /* A */.0
\ 000026 5005 JNC ??PrintXY_3
\ 000028 75..19 MOV ?V0 + 0,#0x19
\ 00002B 8003 SJMP ??PrintXY_1
\ ??PrintXY_3:
\ 00002D 75..00 MOV ?V0 + 0,#0x0
\ ??PrintXY_1:
\ 000030 75..00 MOV ?V0 + 1,#0x0
\ 000033 ; Setup parameters for call to function sprintf
\ 000033 78.. MOV R0,#?V0 + 0
\ 000035 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 000038 90.... MOV DPTR,#x
\ 00003B E0 MOVX A,@DPTR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -