⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blind_node.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
    177                         // can't try more, but we can do a calculation with the nodes reaced
    178                         blindNodeState = SETUP_DATA_COLLECTING;
   \   0001A6   7404         MOV     A,#0x4
   \   0001A8   8082         SJMP    ??RunBlindNode_16
    179                      }
    180                      else
    181                      {
    182                         // no we can't do a calculation, go to sleep...
    183                         AddToSleepTimer(BLIND_NODE_POWER_DOWN_PERIODE);
   \                     ??RunBlindNode_17:
   \   0001AA                ; Setup parameters for call to function AddToSleepTimer
   \   0001AA   7AB8         MOV     R2,#-0x48
   \   0001AC   7B0B         MOV     R3,#0xb
   \   0001AE   90....       MOV     DPTR,#(AddToSleepTimer & 0xffff)
   \   0001B1   74..         MOV     A,#((AddToSleepTimer >> 16) & 0xff)
   \   0001B3   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    184                         INT_SETFLAG(INUM_ST, INT_CLR);
   \   0001B6   C2C7         CLR     0xc0.7
    185                         INT_ENABLE(INUM_ST, INT_ON);
   \   0001B8   D2AD         SETB    0xa8.5
    186                         blindNodeState = SLEEP_STATE;
   \   0001BA   7408         MOV     A,#0x8
   \   0001BC   02....       LJMP    ??RunBlindNode_16 & 0xFFFF
    187                      }
    188                   }
    189                   break;
    190                case SETUP_DATA_COLLECTING:
    191                   blindNodeState = REQUEST_REF_NODE_PACKET;
   \                     ??RunBlindNode_10:
   \   0001BF   7405         MOV     A,#0x5
   \   0001C1   90....       MOV     DPTR,#blindNodeState
   \   0001C4   F0           MOVX    @DPTR,A
    192                   refNodeRequested = 0;
   \   0001C5   7F00         MOV     R7,#0x0
    193                   nbrOfPacketsReceivedFromNode = 0;
   \   0001C7   7E00         MOV     R6,#0x0
    194                   nbrOfReqTimeOuts = 0;
   \   0001C9   E4           CLR     A
   \   0001CA   90....       MOV     DPTR,#nbrOfReqTimeOuts
   \   0001CD   F0           MOVX    @DPTR,A
    195                   nbrOfRefNodesReceivedForCalculation = 0;
   \   0001CE   F5..         MOV     ?V0 + 4,A
   \   0001D0   02....       LJMP    ??RunBlindNode_0 & 0xFFFF
    196                   break;
    197                case REQUEST_REF_NODE_PACKET:
    198                   refNodeRequestShortAddress = refNodesForCalculation[refNodeRequested].shortAddress;
   \                     ??RunBlindNode_11:
   \   0001D3   8F..         MOV     ?V0 + 0,R7
   \   0001D5   75..00       MOV     ?V0 + 1,#0x0
   \   0001D8   7403         MOV     A,#0x3
   \   0001DA   78..         MOV     R0,#?V0 + 0
   \   0001DC   12....       LCALL   ?S_SHL
   \   0001DF   E5..         MOV     A,?V0 + 0
   \   0001E1   24..         ADD     A,#(refNodesForCalculation & 0xff)
   \   0001E3   F582         MOV     DPL,A
   \   0001E5   E5..         MOV     A,?V0 + 1
   \   0001E7   34..         ADDC    A,#((refNodesForCalculation >> 8) & 0xff)
   \   0001E9   F583         MOV     DPH,A
   \   0001EB   E0           MOVX    A,@DPTR
   \   0001EC   F5..         MOV     ?V0 + 0,A
   \   0001EE   A3           INC     DPTR
   \   0001EF   E0           MOVX    A,@DPTR
   \   0001F0   F5..         MOV     ?V0 + 1,A
    199                   ReqSignals(refNodeRequestShortAddress);
   \   0001F2                ; Setup parameters for call to function ReqSignals
   \   0001F2   AA..         MOV     R2,?V0 + 0
   \   0001F4   FB           MOV     R3,A
   \   0001F5   90....       MOV     DPTR,#(ReqSignals & 0xffff)
   \   0001F8   74..         MOV     A,#((ReqSignals >> 16) & 0xff)
   \   0001FA   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    200          
    201                   blindNodeState = RECEIVE_REF_NODES_PACKET;
   \   0001FD   7406         MOV     A,#0x6
   \   0001FF   90....       MOV     DPTR,#blindNodeState
   \   000202   F0           MOVX    @DPTR,A
    202                   // starting sleep timer to go back to this state if no respons
    203                   AddToSleepTimer(BLIND_NODE_WAIT_FOR_REPLY);
   \   000203                ; Setup parameters for call to function AddToSleepTimer
   \   000203   7A64         MOV     R2,#0x64
   \   000205   7B00         MOV     R3,#0x0
   \   000207   90....       MOV     DPTR,#(AddToSleepTimer & 0xffff)
   \   00020A   74..         MOV     A,#((AddToSleepTimer >> 16) & 0xff)
   \   00020C   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    204                   INT_SETFLAG(INUM_ST, INT_CLR);
   \                     ??RunBlindNode_18:
   \   00020F   C2C7         CLR     0xc0.7
    205                   INT_ENABLE(INUM_ST, INT_ON);
   \   000211   D2AD         SETB    0xa8.5
   \   000213   02....       LJMP    ??RunBlindNode_0 & 0xFFFF
    206                   break;
    207                case RECEIVE_REF_NODES_PACKET:
    208                   if (msgReceived){
   \                     ??RunBlindNode_12:
   \   000216   90....       MOV     DPTR,#msgReceived
   \   000219   E0           MOVX    A,@DPTR
   \   00021A   7003         JNZ     $+5
   \   00021C   02....       LJMP    ??RunBlindNode_19 & 0xFFFF
    209                      msgReceived = FALSE;
   \   00021F   E4           CLR     A
   \   000220   F0           MOVX    @DPTR,A
    210          
    211                      packetType = buffer.b.pMsdu[PACKET_INDEX_TYPE];
    212                      if (packetType == PACKET_TYPE_REF_NODE_POSITION &&
    213                          refNodeRequestShortAddress == buffer.b.srcAddr.Short)
   \   000221   90....       MOV     DPTR,#(buffer + 27)
   \   000224   E0           MOVX    A,@DPTR
   \   000225   6412         XRL     A,#0x12
   \   000227   6003         JZ      $+5
   \   000229   02....       LJMP    ??RunBlindNode_4 & 0xFFFF
   \   00022C   90....       MOV     DPTR,#(buffer + 4)
   \   00022F   E0           MOVX    A,@DPTR
   \   000230   65..         XRL     A,?V0 + 0
   \   000232   7004         JNZ     ??RunBlindNode_20
   \   000234   A3           INC     DPTR
   \   000235   E0           MOVX    A,@DPTR
   \   000236   65..         XRL     A,?V0 + 1
   \                     ??RunBlindNode_20:
   \   000238   6003         JZ      $+5
   \   00023A   02....       LJMP    ??RunBlindNode_4 & 0xFFFF
    214                      {
    215                         nbrOfReqTimeOuts = 0;
   \   00023D   E4           CLR     A
   \   00023E   90....       MOV     DPTR,#nbrOfReqTimeOuts
   \   000241   F0           MOVX    @DPTR,A
    216                         if(nbrOfPacketsReceivedFromNode == 0)
   \   000242   85....       MOV     ?V0 + 2,?V0 + 4
   \   000245   F5..         MOV     ?V0 + 3,A
   \   000247   7403         MOV     A,#0x3
   \   000249   78..         MOV     R0,#?V0 + 2
   \   00024B   12....       LCALL   ?S_SHL
   \   00024E   E5..         MOV     A,?V0 + 2
   \   000250   24..         ADD     A,#(refNodesForCalculation & 0xff)
   \   000252   F8           MOV     R0,A
   \   000253   E5..         MOV     A,?V0 + 3
   \   000255   34..         ADDC    A,#((refNodesForCalculation >> 8) & 0xff)
   \   000257   F9           MOV     R1,A
   \   000258   E8           MOV     A,R0
   \   000259   FC           MOV     R4,A
   \   00025A   E9           MOV     A,R1
   \   00025B   FD           MOV     R5,A
   \   00025C   EC           MOV     A,R4
   \   00025D   2406         ADD     A,#0x6
   \   00025F   F8           MOV     R0,A
   \   000260   ED           MOV     A,R5
   \   000261   3400         ADDC    A,#0x0
   \   000263   F9           MOV     R1,A
   \   000264   E8           MOV     A,R0
   \   000265   FA           MOV     R2,A
   \   000266   E9           MOV     A,R1
   \   000267   FB           MOV     R3,A
   \   000268   EE           MOV     A,R6
   \   000269   703B         JNZ     ??RunBlindNode_21
    217                         {
    218                            // store x, y and addr
    219                            refNodesForCalculation[nbrOfRefNodesReceivedForCalculation].shortAddress = refNodeRequestShortAddress;
   \   00026B   8C82         MOV     DPL,R4
   \   00026D   8D83         MOV     DPH,R5
   \   00026F   E5..         MOV     A,?V0 + 0
   \   000271   F0           MOVX    @DPTR,A
   \   000272   A3           INC     DPTR
   \   000273   E5..         MOV     A,?V0 + 1
   \   000275   F0           MOVX    @DPTR,A
    220                            refNodesForCalculation[nbrOfRefNodesReceivedForCalculation].x = BYTES_TO_WORD(buffer.b.pMsdu[PACKET_INDEX_X_H], buffer.b.pMsdu[PACKET_INDEX_X_L]);
   \   000276   90....       MOV     DPTR,#(buffer + 28)
   \   000279   E0           MOVX    A,@DPTR
   \   00027A   F9           MOV     R1,A
   \   00027B   90....       MOV     DPTR,#(buffer + 29)
   \   00027E   E0           MOVX    A,@DPTR
   \   00027F   8C82         MOV     DPL,R4
   \   000281   8D83         MOV     DPH,R5
   \   000283   A3           INC     DPTR
   \   000284   A3           INC     DPTR
   \   000285   F0           MOVX    @DPTR,A
   \   000286   A3           INC     DPTR
   \   000287   E9           MOV     A,R1
   \   000288   F0           MOVX    @DPTR,A
    221                            refNodesForCalculation[nbrOfRefNodesReceivedForCalculation].y = BYTES_TO_WORD(buffer.b.pMsdu[PACKET_INDEX_Y_H], buffer.b.pMsdu[PACKET_INDEX_Y_L]);
   \   000289   90....       MOV     DPTR,#(buffer + 30)
   \   00028C   E0           MOVX    A,@DPTR
   \   00028D   F9           MOV     R1,A
   \   00028E   90....       MOV     DPTR,#(buffer + 31)
   \   000291   E0           MOVX    A,@DPTR
   \   000292   8C82         MOV     DPL,R4
   \   000294   8D83         MOV     DPH,R5
   \   000296   A3           INC     DPTR
   \   000297   A3           INC     DPTR
   \   000298   A3           INC     DPTR
   \   000299   A3           INC     DPTR
   \   00029A   F0           MOVX    @DPTR,A
   \   00029B   A3           INC     DPTR
   \   00029C   E9           MOV     A,R1
   \   00029D   F0           MOVX    @DPTR,A
    222                            refNodesForCalculation[nbrOfRefNodesReceivedForCalculation].rssiAcc = 0;
   \   00029E   8A82         MOV     DPL,R2
   \   0002A0   8B83         MOV     DPH,R3
   \   0002A2   E4           CLR     A
   \   0002A3   F0           MOVX    @DPTR,A
   \   0002A4   A3           INC     DPTR
   \   0002A5   F0           MOVX    @DPTR,A
    223                         }
    224                         // add RSSI value to accumulator
    225                         refNodesForCalculation[nbrOfRefNodesReceivedForCalculation].rssiAcc +=  ED_2_RSSI(LQI_2_ED(buffer.b.mpduLinkQuality));
   \                     ??RunBlindNode_21:
   \   0002A6   90....       MOV     DPTR,#(buffer + 23)
   \   0002A9   E0           MOVX    A,@DPTR
   \   0002AA   13           RRC     A
   \   0002AB   13           RRC     A
   \   0002AC   543F         ANL     A,#0x3f
   \   0002AE   F8           MOV     R0,A
   \   0002AF   7494         MOV     A,#-0x6c
   \   0002B1   28           ADD     A,R0
   \   0002B2   F8           MOV     R0,A
   \   0002B3   74FF         MOV     A,#-0x1
   \   0002B5   3400         ADDC    A,#0x0
   \   0002B7   F9           MOV     R1,A
   \   0002B8   C3           CLR     C
   \   0002B9   E4           CLR     A
   \   0002BA   98           SUBB    A,R0
   \   0002BB   F8           MOV     R0,A
   \   0002BC   E4           CLR     A
   \   0002BD   99           SUBB    A,R1
   \   0002BE   F9           MOV     R1,A
   \   0002BF   8A82         MOV     DPL,R2
   \   0002C1   8B83         MOV     DPH,R3
   \   0002C3   E0           MOVX    A,@DPTR
   \   0002C4   28           ADD     A,R0
   \   0002C5   F0           MOVX    @DPTR,A
   \   0002C6   A3           INC     DPTR
   \   0002C7   E0           MOVX    A,@DPTR
   \   0002C8   39           ADDC    A,R1
   \   0002C9   F0           MOVX    @DPTR,A
    226                         nbrOfPacketsReceivedFromNode++;
   \   0002CA   0E           INC     R6
    227          
    228                         if(nbrOfPacketsReceivedFromNode < NBR_OF_PACKETS_TO_REQUEST)
   \   0002CB   EE           MOV     A,R6
   \   0002CC   C3           CLR     C
   \   0002CD   9408         SUBB    A,#0x8
   \   0002CF   5005         JNC     ??RunBlindNode_22
    229                         {
    230                            blindNodeState = REQUEST_REF_NODE_PACKET;
   \                     ??RunBlindNode_23:
   \   0002D1   7405         MOV     A,#0x5
   \   0002D3   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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -