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

📄 mac_loc.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   00006E                ; Setup parameters for call to function getJoystickDirection
   \   00006E   90....       MOV     DPTR,#(getJoystickDirection & 0xffff)
   \   000071   74..         MOV     A,#((getJoystickDirection >> 16) & 0xff)
   \   000073   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000076   E9           MOV     A,R1
   \   000077   FA           MOV     R2,A
   \   000078   7403         MOV     A,#0x3
   \   00007A   6A           XRL     A,R2
   \   00007B   7003         JNZ     ??main_2
   \   00007D   E4           CLR     A
   \   00007E   8007         SJMP    ??main_3
   \                     ??main_2:
   \   000080   7404         MOV     A,#0x4
   \   000082   6A           XRL     A,R2
   \   000083   70E9         JNZ     ??main_1
   \   000085   7401         MOV     A,#0x1
   \                     ??main_3:
   \   000087   90....       MOV     DPTR,#nodeType
   \   00008A   F0           MOVX    @DPTR,A
    117          
    118             // Wait for device mode selection
    119             WaitForDeviceModeSelection (&nodeType);
    120          
    121             StartDevice ();
   \   00008B                ; Setup parameters for call to function StartDevice
   \   00008B   90....       MOV     DPTR,#(??StartDevice & 0xffff)
   \   00008E   74..         MOV     A,#((??StartDevice >> 16) & 0xff)
   \   000090   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    122             txOptions = TX_OPT_ACK_REQ;
   \   000093   7401         MOV     A,#0x1
   \   000095   90....       MOV     DPTR,#txOptions
   \   000098   F0           MOVX    @DPTR,A
    123          
    124             if (nodeType == REF_NODE)
   \   000099   90....       MOV     DPTR,#nodeType
   \   00009C   E0           MOVX    A,@DPTR
   \   00009D   7015         JNZ     ??main_4
    125             {
    126                resetCoordinates = (BUTTON_PRESSED() ? TRUE : FALSE);
   \   00009F   A281         MOV     C,0x80.1
   \   0000A1   4004         JC      ??main_5
   \   0000A3   D2F0         SETB    B.0
   \   0000A5   8002         SJMP    ??main_6
   \                     ??main_5:
   \   0000A7   C2F0         CLR     B.0
   \                     ??main_6:
   \   0000A9   A2F0         MOV     C,B.0
   \   0000AB   E4           CLR     A
   \   0000AC   92E0         MOV     0xE0 /* A   */.0,C
   \   0000AE   F9           MOV     R1,A
    127                RunRefNode(resetCoordinates);
   \   0000AF                ; Setup parameters for call to function RunRefNode
   \   0000AF   12....       LCALL   RunRefNode & 0xFFFF
   \   0000B2   8014         SJMP    ??main_7
    128             }
    129             else if (nodeType == BLIND_NODE)
   \                     ??main_4:
   \   0000B4   6401         XRL     A,#0x1
   \   0000B6   7010         JNZ     ??main_7
    130             {
    131                if(CHIPID == 0x89)
   \   0000B8   90DF61       MOV     DPTR,#-0x209f
   \   0000BB   E0           MOVX    A,@DPTR
   \   0000BC   6489         XRL     A,#0x89
   \   0000BE   7008         JNZ     ??main_7
    132                {
    133                   RunBlindNode();
   \   0000C0                ; Setup parameters for call to function RunBlindNode
   \   0000C0   90....       MOV     DPTR,#(RunBlindNode & 0xffff)
   \   0000C3   74..         MOV     A,#((RunBlindNode >> 16) & 0xff)
   \                     ??main_8:
   \   0000C5   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    134                }
    135             }
    136          
    137             while(TRUE)
    138             {
    139                LED1 ^= 1;
   \                     ??main_7:
   \   0000C8   639001       XRL     0x90,#0x1
   \   0000CB   E590         MOV     A,0x90
    140                halWait(200);
   \   0000CD                ; Setup parameters for call to function halWait
   \   0000CD   79C8         MOV     R1,#-0x38
   \   0000CF   90....       MOV     DPTR,#(halWait & 0xffff)
   \   0000D2   74..         MOV     A,#((halWait >> 16) & 0xff)
   \   0000D4   80EF         SJMP    ??main_8
    141             }
    142          }
    143          
    144          
    145          /******************************************************************************
    146          *
    147          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    148          static void StartDevice (void)
   \                     ??StartDevice:
    149          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 1
   \   000004   74FF         MOV     A,#-0x1
   \   000006   12....       LCALL   ?ALLOC_XSTACK8
    150             BYTE setAttributeValue;
    151          
    152             // Fetch IEEE Address
    153             FetchIeeeAddress(aExtendedAddress);
   \   000009                ; Setup parameters for call to function FetchIeeeAddress
   \   000009   7A..         MOV     R2,#(aExtendedAddress & 0xff)
   \   00000B   7B..         MOV     R3,#((aExtendedAddress >> 8) & 0xff)
   \   00000D   12....       LCALL   FetchIeeeAddress & 0xFFFF
    154             // Set Short Address to random if not set
    155             if (aExtendedAddress[7] == 0xFF)
   \   000010   90....       MOV     DPTR,#(aExtendedAddress + 7)
   \   000013   E0           MOVX    A,@DPTR
   \   000014   64FF         XRL     A,#0xff
   \   000016   7020         JNZ     ??StartDevice_1
    156             {
    157                halInitRandomGenerator();
   \   000018                ; Setup parameters for call to function halInitRandomGenerator
   \   000018   90....       MOV     DPTR,#(halInitRandomGenerator & 0xffff)
   \   00001B   74..         MOV     A,#((halInitRandomGenerator >> 16) & 0xff)
   \   00001D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    158                CLOCK_RANDOM_GENERATOR();
   \   000020   43B404       ORL     0xb4,#0x4
    159                GET_RANDOM_BYTE(aExtendedAddress[6]);
   \   000023   43B404       ORL     0xb4,#0x4
   \   000026   E5BD         MOV     A,0xbd
   \   000028   90....       MOV     DPTR,#(aExtendedAddress + 6)
   \   00002B   F0           MOVX    @DPTR,A
    160                CLOCK_RANDOM_GENERATOR();
   \   00002C   43B404       ORL     0xb4,#0x4
    161                GET_RANDOM_BYTE(aExtendedAddress[7]);
   \   00002F   43B404       ORL     0xb4,#0x4
   \   000032   E5BD         MOV     A,0xbd
   \   000034   90....       MOV     DPTR,#(aExtendedAddress + 7)
   \   000037   F0           MOVX    @DPTR,A
    162             }
    163          
    164             myShortAddr = aExtendedAddress[6] << 8 | aExtendedAddress[7];
   \                     ??StartDevice_1:
   \   000038   90....       MOV     DPTR,#(aExtendedAddress + 6)
   \   00003B   E0           MOVX    A,@DPTR
   \   00003C   F9           MOV     R1,A
   \   00003D   90....       MOV     DPTR,#(aExtendedAddress + 7)
   \   000040   E0           MOVX    A,@DPTR
   \   000041   90....       MOV     DPTR,#myShortAddr
   \   000044   F0           MOVX    @DPTR,A
   \   000045   A3           INC     DPTR
   \   000046   E9           MOV     A,R1
   \   000047   F0           MOVX    @DPTR,A
    165          
    166             // Reset the MAC layer
    167             mlmeResetRequest(TRUE);
   \   000048                ; Setup parameters for call to function mlmeResetRequest
   \   000048   7901         MOV     R1,#0x1
   \   00004A   12....       LCALL   mlmeResetRequest & 0xFFFF
    168          
    169             // Update PIB attributes	
    170             mlmeSetRequest(MAC_SHORT_ADDRESS, (void *)&myShortAddr);
   \   00004D                ; Setup parameters for call to function mlmeSetRequest
   \   00004D   7A..         MOV     R2,#(myShortAddr & 0xff)
   \   00004F   7B..         MOV     R3,#((myShortAddr >> 8) & 0xff)
   \   000051   7953         MOV     R1,#0x53
   \   000053   12....       LCALL   mlmeSetRequest & 0xFFFF
    171             panId = PANID;
   \   000056   90....       MOV     DPTR,#panId
   \   000059   7431         MOV     A,#0x31
   \   00005B   F0           MOVX    @DPTR,A
   \   00005C   A3           INC     DPTR
   \   00005D   7424         MOV     A,#0x24
   \   00005F   F0           MOVX    @DPTR,A
    172             mlmeSetRequest(MAC_PAN_ID, &panId);
   \   000060                ; Setup parameters for call to function mlmeSetRequest
   \   000060   7A..         MOV     R2,#(panId & 0xff)
   \   000062   7B..         MOV     R3,#((panId >> 8) & 0xff)
   \   000064   7950         MOV     R1,#0x50
   \   000066   12....       LCALL   mlmeSetRequest & 0xFFFF
    173             setAttributeValue = 0x0F;
   \   000069   740F         MOV     A,#0xf
   \   00006B   85..82       MOV     DPL,?XSP + 0
   \   00006E   85..83       MOV     DPH,?XSP + 1
   \   000071   F0           MOVX    @DPTR,A
    174             mlmeSetRequest(MAC_BEACON_ORDER, &setAttributeValue);
   \   000072                ; Setup parameters for call to function mlmeSetRequest
   \   000072   AA82         MOV     R2,DPL
   \   000074   AB83         MOV     R3,DPH
   \   000076   7947         MOV     R1,#0x47
   \   000078   12....       LCALL   mlmeSetRequest & 0xFFFF
    175             mlmeSetRequest(MAC_SUPERFRAME_ORDER, &setAttributeValue);
   \   00007B                ; Setup parameters for call to function mlmeSetRequest
   \   00007B   AA82         MOV     R2,DPL
   \   00007D   AB83         MOV     R3,DPH
   \   00007F   7954         MOV     R1,#0x54
   \   000081   12....       LCALL   mlmeSetRequest & 0xFFFF
    176             setAttributeValue = FALSE;
   \   000084   E4           CLR     A
   \   000085   F0           MOVX    @DPTR,A
    177             mlmeSetRequest(MAC_AUTO_REQUEST, &setAttributeValue);
   \   000086                ; Setup parameters for call to function mlmeSetRequest
   \   000086   AA82         MOV     R2,DPL
   \   000088   AB83         MOV     R3,DPH
   \   00008A   7942         MOV     R1,#0x42
   \   00008C   12....       LCALL   mlmeSetRequest & 0xFFFF
    178             setAttributeValue = TRUE;
   \   00008F   7401         MOV     A,#0x1
   \   000091   F0           MOVX    @DPTR,A
    179             mlmeSetRequest(MAC_RX_ON_WHEN_IDLE, &setAttributeValue);
   \   000092                ; Setup parameters for call to function mlmeSetRequest
   \   000092   AA82         MOV     R2,DPL
   \   000094   AB83         MOV     R3,DPH
   \   000096   7952         MOV     R1,#0x52
   \   000098   12....       LCALL   mlmeSetRequest & 0xFFFF
    180          
    181             msupSetChannel(CHANNEL, TRUE);
   \   00009B                ; Setup parameters for call to function msupSetChannel
   \   00009B   7A01         MOV     R2,#0x1
   \   00009D   7910         MOV     R1,#0x10
   \   00009F   12....       LCALL   msupSetChannel & 0xFFFF
    182          }
   \   0000A2   7401         MOV     A,#0x1
   \   0000A4   12....       LCALL   ?DEALLOC_XSTACK8
   \   0000A7   D083         POP     DPH
   \   0000A9   D082         POP     DPL
   \   0000AB   02....       LJMP    ?BRET
    183          
    184          
    185          /******************************************************************************
    186          *
    187          ******************************************************************************/
    188          static void WaitForDeviceModeSelection (NODE_TYPE *deviceMode)
    189          {
    190          #ifdef SOC_BB
    191             // setup P1_7 as pull-up input
    192             IO_IMODE_PORT_PIN(1, 7, IO_IMODE_PUD);
    193             IO_PUD_PORT(1, IO_PULLUP);
    194             IO_DIR_PORT_PIN(1, 7, IO_IN);
    195             // setup P1_6 as output
    196             IO_DIR_PORT_PIN(1, 6, IO_OUT);
    197             P1_6 = 0;
    198             halWait(100);
    199          
    200             if(P1_7 == 0) //If P1_7 == 0 then P1_7 is shorted to P1_6 wich is set to 0
    201             {
    202                *deviceMode = REF_NODE;
    203             }
    204             else
    205             {
    206                *deviceMode = BLIND_NODE;
    207             }
    208             IO_DIR_PORT_PIN(1, 6, IO_IN);
    209          #else
    210             JOYSTICK_DIRECTION jsd;
    211             BOOL selected = FALSE;
    212             while (!selected)
    213             {
    214                jsd = getJoystickDirection( );
    215                if ( jsd == UP)
    216                {
    217                   // reference node
    218                   *deviceMode = REF_NODE;
    219                   selected = TRUE;
    220                }
    221                else if (jsd == DOWN)
    222                {
    223                   // blind node
    224                   *deviceMode = BLIND_NODE;
    225                   selected = TRUE;
    226                }
    227             }
    228          #endif
    229             return;
    230          }
    231          
    232          
    233          /******************************************************************************
    234          *
    235          * Wait for a packet to be transmitted. dataConfirmMsduHandle and
    236          * dataConfirmStatus is set in mcpsDataConfirm routine which is called from
    237          * the mac
    238          ******************************************************************************/
    239          static void WaitForPacketTransmission (BYTE msduHandle)
    240          {
    241             BOOL loop = TRUE;
    242             do
    243             {
    244                if (dataConfirmMsduHandle == msduHandle)
    245                {
    246                   if (dataConfirmStatus != INVALID_STATUS)
    247                      loop = FALSE;
    248                }
    249             }while (loop);
    250          }
    251          
    252          /******************************************************************************
    253          *
    254          *	DESCRIPTION:
    255          *      mcpsDataIndication is generated by the MAC layer when a data frame is
    256          *      successfully received.
    257          *      The higher layer is not required to return quickly from this callback.

⌨️ 快捷键说明

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