📄 blind_node.lst
字号:
\ 0002E1 7405 MOV A,#0x5
\ 0002E3 02.... LJMP ??RunBlindNode_3 & 0xFFFF
231 }
232 else
233 {
234 // enough packet received
235
236 // divide rssi accumulator on number of packets to get average RSSI
237 refNodesForCalculation[nbrOfRefNodesReceivedForCalculation].rssiAcc >>= NBR_OF_PACKETS_TO_REQUEST_2POW;
\ ??RunBlindNode_22:
\ 0002E6 8A82 MOV DPL,R2
\ 0002E8 8B83 MOV DPH,R3
\ 0002EA E0 MOVX A,@DPTR
\ 0002EB F5.. MOV ?V0 + 2,A
\ 0002ED A3 INC DPTR
\ 0002EE E0 MOVX A,@DPTR
\ 0002EF F5.. MOV ?V0 + 3,A
\ 0002F1 7403 MOV A,#0x3
\ 0002F3 78.. MOV R0,#?V0 + 2
\ 0002F5 12.... LCALL ?US_SHR
\ 0002F8 8A82 MOV DPL,R2
\ 0002FA 8B83 MOV DPH,R3
\ 0002FC E5.. MOV A,?V0 + 2
\ 0002FE F0 MOVX @DPTR,A
\ 0002FF A3 INC DPTR
\ 000300 E5.. MOV A,?V0 + 3
\ 000302 F0 MOVX @DPTR,A
238
239 // point to next ref node
240 refNodeRequested++;
\ 000303 0F INC R7
241 nbrOfRefNodesReceivedForCalculation++;
\ 000304 05.. INC ?V0 + 4
242 if(refNodeRequested < nbrOfNodesToUse)
\ 000306 EF MOV A,R7
\ 000307 C3 CLR C
\ 000308 95.. SUBB A,?V0 + 5
\ 00030A 5004 JNC ??RunBlindNode_24
243 {
244 nbrOfPacketsReceivedFromNode = 0;
\ 00030C 7E00 MOV R6,#0x0
245 blindNodeState = REQUEST_REF_NODE_PACKET;
\ 00030E 80D1 SJMP ??RunBlindNode_23
246 }
247 else
248 {
249 blindNodeState = ESTIMATE_LOCATION;
\ ??RunBlindNode_24:
\ 000310 7407 MOV A,#0x7
\ 000312 90.... MOV DPTR,#blindNodeState
\ 000315 F0 MOVX @DPTR,A
250 INT_ENABLE(INUM_ST, INT_OFF);
\ 000316 C2AD CLR 0xa8.5
\ 000318 02.... LJMP ??RunBlindNode_4 & 0xFFFF
251 }
252 }
253 }
254 SET_BUFFER_EMPTY();
255 }
256 else if (nbrOfReqTimeOuts >= NBR_OF_TIMEOUTS_ALLOWED)
\ ??RunBlindNode_19:
\ 00031B 90.... MOV DPTR,#nbrOfReqTimeOuts
\ 00031E E0 MOVX A,@DPTR
\ 00031F C3 CLR C
\ 000320 9405 SUBB A,#0x5
\ 000322 5003 JNC $+5
\ 000324 02.... LJMP ??RunBlindNode_0 & 0xFFFF
257 {
258 // reference node not reply, point to next ref node
259 refNodeRequested++;
\ 000327 0F INC R7
260 if(refNodeRequested < nbrOfNodesToUse)
\ 000328 EF MOV A,R7
\ 000329 C3 CLR C
\ 00032A 95.. SUBB A,?V0 + 5
\ 00032C 5007 JNC ??RunBlindNode_25
261 {
262 nbrOfPacketsReceivedFromNode = 0;
\ 00032E 7E00 MOV R6,#0x0
263 blindNodeState = REQUEST_REF_NODE_PACKET;
\ 000330 7405 MOV A,#0x5
\ 000332 02.... LJMP ??RunBlindNode_16 & 0xFFFF
264 }
265 else
266 {
267 blindNodeState = ESTIMATE_LOCATION;
\ ??RunBlindNode_25:
\ 000335 7407 MOV A,#0x7
\ 000337 90.... MOV DPTR,#blindNodeState
\ 00033A F0 MOVX @DPTR,A
268 INT_ENABLE(INUM_ST, INT_OFF);
\ 00033B C2AD CLR 0xa8.5
\ 00033D 02.... LJMP ??RunBlindNode_0 & 0xFFFF
269 }
270 }
271 break;
272 case ESTIMATE_LOCATION:
273 CreateInputArrayToLocEngine(xUpperLeft, yUpperLeft);
\ ??RunBlindNode_13:
\ 000340 ; Setup parameters for call to function CreateInputArrayToLocEngine
\ 000340 7402 MOV A,#0x2
\ 000342 12.... LCALL ?XSTACK_DISP0_8
\ 000345 E0 MOVX A,@DPTR
\ 000346 FC MOV R4,A
\ 000347 A3 INC DPTR
\ 000348 E0 MOVX A,@DPTR
\ 000349 FD MOV R5,A
\ 00034A 85..82 MOV DPL,?XSP + 0
\ 00034D 85..83 MOV DPH,?XSP + 1
\ 000350 E0 MOVX A,@DPTR
\ 000351 FA MOV R2,A
\ 000352 A3 INC DPTR
\ 000353 E0 MOVX A,@DPTR
\ 000354 FB MOV R3,A
\ 000355 90.... MOV DPTR,#(CreateInputArrayToLocEngine & 0xffff)
\ 000358 74.. MOV A,#((CreateInputArrayToLocEngine >> 16) & 0xff)
\ 00035A 12.... LCALL ?BCALL ; Banked call to: DPTR()
274
275 CalculatePosition(refNodes, a_val, n_index, &xLocValue, &yLocValue);
\ 00035D ; Setup parameters for call to function CalculatePosition
\ 00035D 7405 MOV A,#0x5
\ 00035F 12.... LCALL ?XSTACK_DISP0_8
\ 000362 8582.. MOV ?V0 + 2,DPL
\ 000365 8583.. MOV ?V0 + 3,DPH
\ 000368 78.. MOV R0,#?V0 + 2
\ 00036A 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00036D 7406 MOV A,#0x6
\ 00036F 12.... LCALL ?XSTACK_DISP0_8
\ 000372 8582.. MOV ?V0 + 2,DPL
\ 000375 8583.. MOV ?V0 + 3,DPH
\ 000378 78.. MOV R0,#?V0 + 2
\ 00037A 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00037D 90.... MOV DPTR,#n_index
\ 000380 E0 MOVX A,@DPTR
\ 000381 FC MOV R4,A
\ 000382 90.... MOV DPTR,#a_val
\ 000385 E0 MOVX A,@DPTR
\ 000386 F9 MOV R1,A
\ 000387 7A.. MOV R2,#(refNodes & 0xff)
\ 000389 7B.. MOV R3,#((refNodes >> 8) & 0xff)
\ 00038B 90.... MOV DPTR,#(CalculatePosition & 0xffff)
\ 00038E 74.. MOV A,#((CalculatePosition >> 16) & 0xff)
\ 000390 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000393 7404 MOV A,#0x4
\ 000395 12.... LCALL ?DEALLOC_XSTACK8
276 x = (xLocValue << 1) + xUpperLeft; // convert to UINT8_2 and add offset
\ 000398 7404 MOV A,#0x4
\ 00039A 12.... LCALL ?XSTACK_DISP0_8
\ 00039D E0 MOVX A,@DPTR
\ 00039E C3 CLR C
\ 00039F 33 RLC A
\ 0003A0 F8 MOV R0,A
\ 0003A1 E4 CLR A
\ 0003A2 33 RLC A
\ 0003A3 F9 MOV R1,A
\ 0003A4 85..82 MOV DPL,?XSP + 0
\ 0003A7 85..83 MOV DPH,?XSP + 1
\ 0003AA E0 MOVX A,@DPTR
\ 0003AB 28 ADD A,R0
\ 0003AC F8 MOV R0,A
\ 0003AD A3 INC DPTR
\ 0003AE E0 MOVX A,@DPTR
\ 0003AF 39 ADDC A,R1
\ 0003B0 F9 MOV R1,A
\ 0003B1 90.... MOV DPTR,#x
\ 0003B4 E8 MOV A,R0
\ 0003B5 F0 MOVX @DPTR,A
\ 0003B6 A3 INC DPTR
\ 0003B7 E9 MOV A,R1
\ 0003B8 F0 MOVX @DPTR,A
277 y = (yLocValue << 1) + yUpperLeft; // convert to UINT8_2 and add offset
\ 0003B9 7405 MOV A,#0x5
\ 0003BB 12.... LCALL ?XSTACK_DISP0_8
\ 0003BE E0 MOVX A,@DPTR
\ 0003BF C3 CLR C
\ 0003C0 33 RLC A
\ 0003C1 F8 MOV R0,A
\ 0003C2 E4 CLR A
\ 0003C3 33 RLC A
\ 0003C4 F9 MOV R1,A
\ 0003C5 7402 MOV A,#0x2
\ 0003C7 12.... LCALL ?XSTACK_DISP0_8
\ 0003CA E0 MOVX A,@DPTR
\ 0003CB 28 ADD A,R0
\ 0003CC F8 MOV R0,A
\ 0003CD A3 INC DPTR
\ 0003CE E0 MOVX A,@DPTR
\ 0003CF 39 ADDC A,R1
\ 0003D0 F9 MOV R1,A
\ 0003D1 90.... MOV DPTR,#y
\ 0003D4 E8 MOV A,R0
\ 0003D5 F0 MOVX @DPTR,A
\ 0003D6 A3 INC DPTR
\ 0003D7 E9 MOV A,R1
\ 0003D8 F0 MOVX @DPTR,A
278
279 #ifdef CC2430EB
280 PrintXY();
\ 0003D9 ; Setup parameters for call to function PrintXY
\ 0003D9 90.... MOV DPTR,#(PrintXY & 0xffff)
\ 0003DC 74.. MOV A,#((PrintXY >> 16) & 0xff)
\ 0003DE 12.... LCALL ?BCALL ; Banked call to: DPTR()
281 #endif
282 if(DiscardResult(xStrongestNode, yStrongestNode, strongestRssi))
\ 0003E1 ; Setup parameters for call to function DiscardResult
\ 0003E1 7406 MOV A,#0x6
\ 0003E3 12.... LCALL ?XSTACK_DISP0_8
\ 0003E6 E0 MOVX A,@DPTR
\ 0003E7 F9 MOV R1,A
\ 0003E8 7409 MOV A,#0x9
\ 0003EA 12.... LCALL ?XSTACK_DISP0_8
\ 0003ED E0 MOVX A,@DPTR
\ 0003EE FC MOV R4,A
\ 0003EF A3 INC DPTR
\ 0003F0 E0 MOVX A,@DPTR
\ 0003F1 FD MOV R5,A
\ 0003F2 7407 MOV A,#0x7
\ 0003F4 12.... LCALL ?XSTACK_DISP0_8
\ 0003F7 E0 MOVX A,@DPTR
\ 0003F8 FA MOV R2,A
\ 0003F9 A3 INC DPTR
\ 0003FA E0 MOVX A,@DPTR
\ 0003FB FB MOV R3,A
\ 0003FC 90.... MOV DPTR,#(DiscardResult & 0xffff)
\ 0003FF 74.. MOV A,#((DiscardResult >> 16) & 0xff)
\ 000401 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000404 E9 MOV A,R1
\ 000405 601A JZ ??RunBlindNode_26
283 {
284 SendText("Result discarded");
\ 000407 ; Setup parameters for call to function SendText
\ 000407 7A.. MOV R2,#(`?<Constant "Result discarded">` & 0xff)
\ 000409 7B.. MOV R3,#((`?<Constant "Result discarded">` >> 8) & 0xff)
\ 00040B 90.... MOV DPTR,#(SendText & 0xffff)
\ 00040E 74.. MOV A,#((SendText >> 16) & 0xff)
\ 000410 12.... LCALL ?BCALL ; Banked call to: DPTR()
285 x = y = UNINITIALIZED_XY_VALUE;
\ 000413 90.... MOV DPTR,#y
\ 000416 74FF MOV A,#-0x1
\ 000418 F0 MOVX @DPTR,A
\ 000419 A3 INC DPTR
\ 00041A F0 MOVX @DPTR,A
\ 00041B 90.... MOV DPTR,#x
\ 00041E F0 MOVX @DPTR,A
\ 00041F A3 INC DPTR
\ 000420 F0 MOVX @DPTR,A
286 }
287 SendPosition(PC_SHORT);
\ ??RunBlindNode_26:
\ 000421 ; Setup parameters for call to function SendPosition
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -