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

📄 blind_node.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   16/Jan/2007  15:33:10 #
# Copyright 2004-2006 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Core               =  plain                                             #
#    Code model         =  banked                                            #
#    Data model         =  large                                             #
#    Calling convention =  xdata reentrant                                   #
#    Constant location  =  data                                              #
#    Dptr setup         =  1,16                                              #
#    Source file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\apps\blind_node.c                              #
#    Command line       =  -I "C:\Program Files\IAR Systems\Embedded         #
#                          Workbench 4.05 Evaluation version\8051\INC\" -I   #
#                          "C:\Program Files\IAR Systems\Embedded Workbench  #
#                          4.05 Evaluation version\8051\SRC\LIB\" -I         #
#                          "C:\Program Files\IAR Systems\Embedded Workbench  #
#                          4.05 Evaluation version\8051\INC\CLIB\" -I        #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\ -I          #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\mac\cc2430\  #
#                          -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_E #
#                          ngine\Test\mac\mac_loc\..\..\..\include\hal\cc243 #
#                          0\ -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LO #
#                          C_Engine\Test\mac\mac_loc\..\..\..\apps\ -D       #
#                          USE_LED -D SOC_BB -lCN "E:\公司产品资料\Zigbee\cc #
#                          2431\cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_B #
#                          B, hex\List\" -lA "E:\公司产品资料\Zigbee\cc2431\ #
#                          cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_BB,    #
#                          hex\List\" -o "E:\公司产品资料\Zigbee\cc2431\cc24 #
#                          31定位\LOC_Engine\Test\mac\mac_loc\SOC_BB,        #
#                          hex\Obj\" -e -s9 --debug --core=plain             #
#                          --dptr=16,1 --data_model=large                    #
#                          --code_model=banked --calling_convention=xdata_re #
#                          entrant --place_constants=data --nr_virtual_regs  #
#                          8 E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_En #
#                          gine\apps\blind_node.c                            #
#    List file          =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB,                       #
#                          hex\List\blind_node.lst                           #
#    Object file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB,                       #
#                          hex\Obj\blind_node.r51                            #
#                                                                            #
#                                                                            #
##############################################################################

E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\apps\blind_node.c
      1          /******************************************************************************
      2          *                                                                             *
      3          *        **********                                                           *
      4          *       ************                                                          *
      5          *      ***        ***                                                         *
      6          *     ***    ++    ***                                                        *
      7          *     ***   +  +   ***                      CHIPCON                           *
      8          *     ***   +                                                                 *
      9          *     ***   +  +   ***                                                        *
     10          *     ***    ++    ***                                                        *
     11          *      ***        ***                                                         *
     12          *       ************                                                          *
     13          *        **********                                                           *
     14          *                                                                             *
     15          *******************************************************************************
     16          
     17          Filename:     blindNode.c
     18          Target:       cc2431
     19          Author:       KJA
     20          Revised:      14/02-2005
     21          Revision:     1.0
     22          
     23          Description:
     24          This file contains the main function used for blind node.
     25          
     26          ******************************************************************************/
     27          
     28          #include "mac_headers.h"

   \                                 In segment SFR_AN, at 0xc9
   \   unsigned char volatile __sfr WDCTL
   \                     WDCTL:
   \   000000                DS 1
     29          #include "node.h"
     30          #include "ioCC2431.h"
     31          #ifdef CC2430EB
     32          #include "lcd.h"
     33          #endif
     34          // flags
     35          extern BOOL msgReceived;
     36          
     37          // counters

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     38          UINT8 nbrOfBCastReplys, nbrOfRetries, nbrOfReqTimeOuts;
   \                     nbrOfBCastReplys:
   \   000000                DS 1

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
   \                     nbrOfRetries:
   \   000000                DS 1

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
   \                     nbrOfReqTimeOuts:
   \   000000                DS 1
     39          
     40          // node parameters
     41          extern MSG_BUFFER buffer;
     42          extern UINT16_2   x;
     43          extern UINT16_2   y;
     44          extern UINT8      z;
     45          extern BOOL       parametersReceived;
     46          extern BOOL       blinkLed;
     47          extern UINT8      ledBlinkCounter;
     48          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     49          UINT8_1     a_val;
   \                     a_val:
   \   000000                DS 1

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     50          UINT8       n_index;
   \                     n_index:
   \   000000                DS 1
     51          
     52          /* Buffer for storing of received data from ref. nodes */

   \                                 In segment XDATA_N, align 1
     53          __no_init RAW_REF_NODE_S refNodesForCalculation[LOC_ENGINE_NODE_CAPACITY];
   \                     refNodesForCalculation:
   \   000000                DS 64
     54          
     55          /* Short address to all nodes that should be used will be placed in this struct */

   \                                 In segment XDATA_N, align 1
     56          __no_init WORD refNodesUsable[LOC_ENGINE_NODE_CAPACITY];
   \                     refNodesUsable:
   \   000000                DS 16
     57          
     58          /* Buffer used as input to location engine */

   \                                 In segment XDATA_N, align 1
     59          __no_init LOC_REF_NODE_S refNodes[LOC_ENGINE_NODE_CAPACITY];
   \                     refNodes:
   \   000000                DS 24
     60          
     61          
     62          enum {
     63             INIT_BCAST,
     64             BCAST_REQUEST,
     65             RECEIVE_BCAST_REPLY,
     66             CHECK_REPLIES,
     67             SETUP_DATA_COLLECTING,
     68             REQUEST_REF_NODE_PACKET,
     69             RECEIVE_REF_NODES_PACKET,
     70             ESTIMATE_LOCATION,
     71             SLEEP_STATE,
     72             BLINK_LED_STATE

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     73          } blindNodeState;
   \                     blindNodeState:
   \   000000                DS 1
     74          
     75          
     76          
     77          /******************************************************************************
     78          *
     79          * This function is the main loop for Blind Node
     80          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
     81          void RunBlindNode(void){
   \                     RunBlindNode:
   \   000000   74F2         MOV     A,#-0xe
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 14
   \   000005                ; Auto size: 11
   \   000005   74F5         MOV     A,#-0xb
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
     82             BYTE     packetType;
     83             UINT8    refNodeRequested;
     84             UINT8    nbrOfPacketsReceivedFromNode;
     85             UINT8    nbrOfNodesToUse;
     86             UINT8    nbrOfRefNodesReceivedForCalculation;
     87             WORD     refNodeRequestShortAddress;
     88             UINT8_1  xLocValue, yLocValue;
     89             UINT16_2 xUpperLeft, yUpperLeft, xStrongestNode, yStrongestNode;
     90             UINT8    strongestRssi;
     91          
     92             x = y = UNINITIALIZED_XY_VALUE;
   \   00000A   90....       MOV     DPTR,#y
   \   00000D   74FF         MOV     A,#-0x1
   \   00000F   F0           MOVX    @DPTR,A
   \   000010   A3           INC     DPTR
   \   000011   F0           MOVX    @DPTR,A
   \   000012   90....       MOV     DPTR,#x
   \   000015   F0           MOVX    @DPTR,A
   \   000016   A3           INC     DPTR
   \   000017   F0           MOVX    @DPTR,A
     93          
     94             a_val = DEFAULT_A_PARAM;
   \   000018   744E         MOV     A,#0x4e
   \   00001A   90....       MOV     DPTR,#a_val
   \   00001D   F0           MOVX    @DPTR,A
     95             n_index = DEFAULT_N_INDEX;
   \   00001E   7410         MOV     A,#0x10
   \   000020   90....       MOV     DPTR,#n_index
   \   000023   F0           MOVX    @DPTR,A
     96          
     97             blindNodeState = INIT_BCAST;
   \   000024   E4           CLR     A
   \   000025   90....       MOV     DPTR,#blindNodeState
   \   000028   F0           MOVX    @DPTR,A
     98          
     99             SET_BUFFER_EMPTY();
   \   000029   90....       MOV     DPTR,#buffer
   \   00002C   F0           MOVX    @DPTR,A
    100          
    101             // disable sleep timer
    102             INT_ENABLE(INUM_ST, INT_OFF);
   \   00002D   C2AD         CLR     0xa8.5
    103          
    104             // setup for sending A and N to PC after startup
    105             parametersReceived = TRUE;
   \   00002F   7401         MOV     A,#0x1
   \   000031   90....       MOV     DPTR,#parametersReceived
   \   000034   F0           MOVX    @DPTR,A
    106          
    107          #ifdef CC2430EB
    108             lcdUpdate("CC4231","Blind node");
    109          #endif
    110             SendText("Blind Node Powerup");
   \   000035                ; Setup parameters for call to function SendText
   \   000035   7A..         MOV     R2,#(`?<Constant "Blind Node Powerup">` & 0xff)
   \   000037   7B..         MOV     R3,#((`?<Constant "Blind Node Powerup">` >> 8) & 0xff)
   \   000039   90....       MOV     DPTR,#(SendText & 0xffff)
   \   00003C   74..         MOV     A,#((SendText >> 16) & 0xff)
   \   00003E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    111          
    112             // enable watch dog timer
    113             WDT_SET_TIMEOUT_PERIOD(SEC_1);
   \   000041   53C9FC       ANL     0xc9,#0xfc
   \   000044   E5C9         MOV     A,0xc9

⌨️ 快捷键说明

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