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

📄 mac_scan.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
    167              // TX mode
    168              pPacket->txMode = MTX_MODE_USE_CSMACA_BM | MTX_MODE_FORCE_UNSLOTTED_BM | MTX_MODE_SCAN_RELATED_BM;
   \                     ??mscTransmitOrphanNotification_4:
   \   000040   EE           MOV     A,R6
   \   000041   2486         ADD     A,#-0x7a
   \   000043   F582         MOV     DPL,A
   \   000045   EF           MOV     A,R7
   \   000046   3400         ADDC    A,#0x0
   \   000048   F583         MOV     DPH,A
   \   00004A   740B         MOV     A,#0xb
   \   00004C   F0           MOVX    @DPTR,A
    169              pPacket->retriesLeft = aMaxFrameRetries;
   \   00004D   EE           MOV     A,R6
   \   00004E   2491         ADD     A,#-0x6f
   \   000050   F582         MOV     DPL,A
   \   000052   EF           MOV     A,R7
   \   000053   3400         ADDC    A,#0x0
   \   000055   F583         MOV     DPH,A
   \   000057   7403         MOV     A,#0x3
   \   000059   F0           MOVX    @DPTR,A
    170          
    171              // Generate the packet header
    172              msupPrepareHeader(pPacket, FT_MAC_COMMAND, DEST_ADDR_SHORT | SRC_ADDR_EXT, broadcast, (ADDRESS   *) &aExtendedAddress, broadcast, (ADDRESS   *) &broadcast, TX_OPT_NONE);
   \   00005A                ; Setup parameters for call to function msupPrepareHeader
   \   00005A   85..82       MOV     DPL,?XSP + 0
   \   00005D   85..83       MOV     DPH,?XSP + 1
   \   000060   8582..       MOV     ?V0 + 0,DPL
   \   000063   8583..       MOV     ?V0 + 1,DPH
   \   000066   78..         MOV     R0,#?V0 + 0
   \   000068   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   00006B   7402         MOV     A,#0x2
   \   00006D   12....       LCALL   ?XSTACK_DISP0_8
   \   000070   12....       LCALL   ?PUSH_XSTACK8_X_TWO
   \   000073   75....       MOV     ?V0 + 0,#(aExtendedAddress & 0xff)
   \   000076   75....       MOV     ?V0 + 1,#((aExtendedAddress >> 8) & 0xff)
   \   000079   78..         MOV     R0,#?V0 + 0
   \   00007B   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   00007E   7406         MOV     A,#0x6
   \   000080   12....       LCALL   ?XSTACK_DISP0_8
   \   000083   12....       LCALL   ?PUSH_XSTACK8_X_TWO
   \   000086   7D00         MOV     R5,#0x0
   \   000088   7CC8         MOV     R4,#-0x38
   \   00008A   7903         MOV     R1,#0x3
   \   00008C   EE           MOV     A,R6
   \   00008D   FA           MOV     R2,A
   \   00008E   EF           MOV     A,R7
   \   00008F   FB           MOV     R3,A
   \   000090   12....       LCALL   msupPrepareHeader
   \   000093   7408         MOV     A,#0x8
   \   000095   12....       LCALL   ?DEALLOC_XSTACK8
    173          
    174              // Generate the packet payload
    175              pPacket->pPayload[0] = CMD_ORPHAN_NOTIFICATION;
   \   000098   EE           MOV     A,R6
   \   000099   241A         ADD     A,#0x1a
   \   00009B   F582         MOV     DPL,A
   \   00009D   EF           MOV     A,R7
   \   00009E   3400         ADDC    A,#0x0
   \   0000A0   F583         MOV     DPH,A
   \   0000A2   7406         MOV     A,#0x6
   \   0000A4   F0           MOVX    @DPTR,A
    176          
    177              // Store the command type
    178              pPacket->commandType = CMD_ORPHAN_NOTIFICATION;
   \   0000A5   EE           MOV     A,R6
   \   0000A6   2483         ADD     A,#-0x7d
   \   0000A8   F582         MOV     DPL,A
   \   0000AA   EF           MOV     A,R7
   \   0000AB   3400         ADDC    A,#0x0
   \   0000AD   F583         MOV     DPH,A
   \   0000AF   7406         MOV     A,#0x6
   \   0000B1   F0           MOVX    @DPTR,A
    179          
    180              // Calculate and set the total packet length
    181              pPacket->length = pPacket->headerLength + CMD_ORPHAN_NOTIFICATION_PAYLOAD_LENGTH + MAC_FCS_LENGTH;
   \   0000B2   8E82         MOV     DPL,R6
   \   0000B4   8F83         MOV     DPH,R7
   \   0000B6   A3           INC     DPTR
   \   0000B7   E0           MOVX    A,@DPTR
   \   0000B8   2403         ADD     A,#0x3
   \   0000BA   F9           MOV     R1,A
   \   0000BB   8E82         MOV     DPL,R6
   \   0000BD   8F83         MOV     DPH,R7
   \   0000BF   A3           INC     DPTR
   \   0000C0   A3           INC     DPTR
   \   0000C1   F0           MOVX    @DPTR,A
    182          
    183              // Calculate the packet duration (including ack. and IFS)
    184              pPacket->duration = msupCalcPacketDuration(pPacket->length, FALSE);
   \   0000C2                ; Setup parameters for call to function msupCalcPacketDuration
   \   0000C2   7A00         MOV     R2,#0x0
   \   0000C4   12....       LCALL   msupCalcPacketDuration
   \   0000C7   EE           MOV     A,R6
   \   0000C8   2485         ADD     A,#-0x7b
   \   0000CA   F582         MOV     DPL,A
   \   0000CC   EF           MOV     A,R7
   \   0000CD   3400         ADDC    A,#0x0
   \   0000CF   F583         MOV     DPH,A
   \   0000D1   E9           MOV     A,R1
   \   0000D2   F0           MOVX    @DPTR,A
    185          
    186              // Initiate the transmission
    187              mschAddTask(taskNumber, MAC_TASK_PRI_LOW, mtxScheduleTransmission, (WORD) pPacket);
   \   0000D3                ; Setup parameters for call to function mschAddTask
   \   0000D3   75....       MOV     ?V0 + 0,#(mtxScheduleTransmission & 0xff)
   \   0000D6   75....       MOV     ?V0 + 1,#((mtxScheduleTransmission >> 8) & 0xff)
   \   0000D9   75....       MOV     ?V0 + 2,#((mtxScheduleTransmission >> 16) & 0xff)
   \   0000DC   78..         MOV     R0,#?V0 + 0
   \   0000DE   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   0000E1   EE           MOV     A,R6
   \   0000E2   FC           MOV     R4,A
   \   0000E3   EF           MOV     A,R7
   \   0000E4   FD           MOV     R5,A
   \   0000E5   7A00         MOV     R2,#0x0
   \   0000E7   A9..         MOV     R1,?V0 + 3
   \   0000E9   12....       LCALL   mschAddTask
   \   0000EC   7403         MOV     A,#0x3
   \   0000EE   12....       LCALL   ?DEALLOC_XSTACK8
    188          
    189              return TRUE;
   \   0000F1   7901         MOV     R1,#0x1
   \                     ??mscTransmitOrphanNotification_3:
   \   0000F3   02....       LJMP    ?Subroutine0
    190          
    191          } // mscTransmitOrphanNotification
    192          
    193          
    194          
    195          
    196          /*******************************************************************************************************
    197           *******************************************************************************************************
    198           **************************        CHANNEL SCANNING + SUPPORT FUNCTIONS       **************************
    199           *******************************************************************************************************
    200           *******************************************************************************************************/
    201          
    202          
    203          
    204          
    205          //-------------------------------------------------------------------------------------------------------
    206          //  BOOL mscPanDescriptorExists(PAN_DESCRIPTOR *pPanDescriptor)
    207          //
    208          //  DESCRIPTION:
    209          //      Used by a scanning device (active or passive scan) to determine whether or not the PAN descriptor
    210          //      from a received beacon already exists in the scan result list. The function returns TRUE if
    211          //      there's a match on coordinator PAN ID + address, and the logical channel.
    212          //
    213          //  ARGUMENTS:
    214          //      PAN_DESCRIPTOR *pPanDescriptor
    215          //          A pointer to the new PAN descriptor
    216          //
    217          //  RETURN VALUE:
    218          //      BOOL
    219          //          The PAN descriptor pointed to by pPanDescriptor already exists in the result list.
    220          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    221          ROOT BOOL mscPanDescriptorExists(PAN_DESCRIPTOR   *pPanDescriptor) {
   \                     mscPanDescriptorExists:
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
    222              UINT8 n;
    223              PAN_DESCRIPTOR   *pExistingPanDesc;
    224              MAC_SCAN_RESULT   *pScanResult = mscInfo.pScanResult;
   \   000009   90....       MOV     DPTR,#(mscInfo + 6)
   \   00000C   E0           MOVX    A,@DPTR
   \   00000D   F5..         MOV     ?V0 + 2,A
   \   00000F   A3           INC     DPTR
   \   000010   E0           MOVX    A,@DPTR
   \   000011   F5..         MOV     ?V0 + 3,A
    225          
    226              // Search for duplicates
    227              for (n = 0; n < pScanResult->resultListSize; n++) {
   \   000013   75..00       MOV     ?V0 + 0,#0x0
   \   000016   8017         SJMP    ??mscPanDescriptorExists_0
    228                  pExistingPanDesc = &pScanResult->list.pPANDescriptorList[n];
    229                  if ((pPanDescriptor->coordAddrMode  == pExistingPanDesc->coordAddrMode ) &&
    230                      (pPanDescriptor->coordPanId     == pExistingPanDesc->coordPanId ) &&
    231                      (pPanDescriptor->logicalChannel == pExistingPanDesc->logicalChannel)) {
    232          
    233                      if (pPanDescriptor->coordAddrMode == AM_EXTENDED_64) {
    234                          if (msupCompareExtendedAddress(&pPanDescriptor->coordAddress, &pExistingPanDesc->coordAddress)) return TRUE;
    235                      } else {
    236                          if (pPanDescriptor->coordAddress.Short == pExistingPanDesc->coordAddress.Short) return TRUE;
   \                     ??mscPanDescriptorExists_1:
   \   000018   E0           MOVX    A,@DPTR
   \   000019   F8           MOV     R0,A
   \   00001A   A3           INC     DPTR
   \   00001B   E0           MOVX    A,@DPTR
   \   00001C   F9           MOV     R1,A
   \   00001D   8C82         MOV     DPL,R4
   \   00001F   8D83         MOV     DPH,R5
   \   000021   E0           MOVX    A,@DPTR
   \   000022   68           XRL     A,R0
   \   000023   7003         JNZ     ??mscPanDescriptorExists_2
   \   000025   A3           INC     DPTR
   \   000026   E0           MOVX    A,@DPTR
   \   000027   69           XRL     A,R1
   \                     ??mscPanDescriptorExists_2:
   \   000028   7003         JNZ     $+5
   \   00002A   02....       LJMP    ??mscPanDescriptorExists_3
    237                      }
   \                     ??mscPanDescriptorExists_4:
   \   00002D   05..         INC     ?V0 + 0
   \                     ??mscPanDescriptorExists_0:
   \   00002F   85..82       MOV     DPL,?V0 + 2
   \   000032   85..83       MOV     DPH,?V0 + 3
   \   000035   A3           INC     DPTR
   \   000036   A3           INC     DPTR
   \   000037   A3           INC     DPTR
   \   000038   A3           INC     DPTR
   \   000039   A3           INC     DPTR
   \   00003A   E0           MOVX    A,@DPTR
   \   00003B   FA           MOV     R2,A
   \   00003C   E5..         MOV     A,?V0 + 0
   \   00003E   C3           CLR     C
   \   00003F   9A           SUBB    A,R2
   \   000040   4003         JC      $+5
   \   000042   02....       LJMP    ??mscPanDescriptorExists_5
   \   000045   E5..         MOV     A,?V0 + 0
   \   000047   75F017       MOV     B,#0x17
   \   00004A   A4           MUL     AB
   \   00004B   F8           MOV     R0,A
   \   00004C   A9F0         MOV     R1,B
   \   00004E   E5..         MOV     A,?V0 + 2
   \   000050   28           ADD     A,R0
   \   000051   F8           MOV     R0,A
   \   000052   E5..         MOV     A,?V0 + 3
   \   000054   39           ADDC    A,R1
   \   000055   F9           MOV     R1,A
   \   000056   7406         MOV     A,#0x6
   \   000058   28           ADD     A,R0
   \   000059   F8           MOV     R0,A
   \   00005A   E4           CLR     A
   \   00005B   39           ADDC    A,R1
   \   00005C   F9           MOV     R1,A
   \   00005D   8E82         MOV     DPL,R6
   \   00005F   8F83         MOV     DPH,R7

⌨️ 快捷键说明

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