simplecontroller.lst

来自「CC2430上开关控制灯和温度传感器采集两个例子」· LST 代码 · 共 801 行 · 第 1/3 页

LST
801
字号
     94          }
   \   000000   02....       LJMP    ?BRET
     95          /*********************************************************************
     96           * @fn      zb_HandleKeys
     97           *
     98           * @brief   Handles all key events for this device.
     99           *
    100           * @param   shift - true if in shift/alt.
    101           * @param   keys - bit field for key events. Valid entries:
    102           *                 EVAL_SW4
    103           *                 EVAL_SW3
    104           *                 EVAL_SW2
    105           *                 EVAL_SW1
    106           *
    107           * @return  none
    108           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    109          void zb_HandleKeys( uint8 shift, uint8 keys )
   \                     zb_HandleKeys:
    110          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 2
   \   000005   74FE         MOV     A,#-0x2
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   EA           MOV     A,R2
   \   00000B   FE           MOV     R6,A
    111            uint8 startOptions;
    112            uint8 logicalType;
    113          
    114            // Shift is used to make each button/switch dual purpose.
    115            if ( shift )
   \   00000C   E9           MOV     A,R1
   \   00000D   6003         JZ      $+5
   \   00000F   02....       LJMP    ??zb_HandleKeys_0 & 0xFFFF
    116            {
    117              if ( keys & HAL_KEY_SW_1 )
    118              {
    119              }
    120              if ( keys & HAL_KEY_SW_2 )
    121              {
    122              }
    123              if ( keys & HAL_KEY_SW_3 )
    124              {
    125              }
    126              if ( keys & HAL_KEY_SW_4 )
    127              {
    128              }
    129            }
    130            else
    131            {
    132              if ( keys & HAL_KEY_SW_1 )
   \   000012   EE           MOV     A,R6
   \   000013   A2E0         MOV     C,0xE0 /* A   */.0
   \   000015   506D         JNC     ??zb_HandleKeys_1
    133              {
    134                if ( myAppState == APP_INIT  )
   \   000017   90....       MOV     DPTR,#??myAppState
   \   00001A   E0           MOVX    A,@DPTR
   \   00001B   705A         JNZ     ??zb_HandleKeys_2
    135                {
    136                  // In the init state, keys are used to indicate the logical mode.
    137                  // Key 1 starts device as a coordinator
    138          
    139                  zb_ReadConfiguration( ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType );
   \   00001D                ; Setup parameters for call to function zb_ReadConfiguration
   \   00001D   85..82       MOV     DPL,?XSP + 0
   \   000020   85..83       MOV     DPH,?XSP + 1
   \   000023   AC82         MOV     R4,DPL
   \   000025   AD83         MOV     R5,DPH
   \   000027   7A01         MOV     R2,#0x1
   \   000029   7987         MOV     R1,#-0x79
   \   00002B   90....       MOV     DPTR,#(zb_ReadConfiguration & 0xffff)
   \   00002E   74..         MOV     A,#((zb_ReadConfiguration >> 16) & 0xff)
   \   000030   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    140                  if ( logicalType != ZG_DEVICETYPE_ENDDEVICE )
   \   000033   85..82       MOV     DPL,?XSP + 0
   \   000036   85..83       MOV     DPH,?XSP + 1
   \   000039   E0           MOVX    A,@DPTR
   \   00003A   6402         XRL     A,#0x2
   \   00003C   6012         JZ      ??zb_HandleKeys_3
    141                  {
    142                    logicalType = ZG_DEVICETYPE_COORDINATOR;
   \   00003E   E4           CLR     A
   \   00003F   F0           MOVX    @DPTR,A
    143                    zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
   \   000040                ; Setup parameters for call to function zb_WriteConfiguration
   \   000040   AC82         MOV     R4,DPL
   \   000042   AD83         MOV     R5,DPH
   \   000044   7A01         MOV     R2,#0x1
   \   000046   7987         MOV     R1,#-0x79
   \   000048   90....       MOV     DPTR,#(zb_WriteConfiguration & 0xffff)
   \   00004B   74..         MOV     A,#((zb_WriteConfiguration >> 16) & 0xff)
   \   00004D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    144                  }
    145          
    146                  // Do more configuration if necessary and then restart device with auto-start bit set
    147                  // write endpoint to simple desc...dont pass it in start req..then reset
    148          
    149          
    150                  zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
   \                     ??zb_HandleKeys_3:
   \   000050                ; Setup parameters for call to function zb_ReadConfiguration
   \   000050   7401         MOV     A,#0x1
   \   000052   12....       LCALL   ?XSTACK_DISP0_8
   \   000055   AC82         MOV     R4,DPL
   \   000057   AD83         MOV     R5,DPH
   \   000059   7A01         MOV     R2,#0x1
   \   00005B   7903         MOV     R1,#0x3
   \   00005D   90....       MOV     DPTR,#(zb_ReadConfiguration & 0xffff)
   \   000060   74..         MOV     A,#((zb_ReadConfiguration >> 16) & 0xff)
   \   000062   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    151                  startOptions = ZCD_STARTOPT_AUTO_START;
   \   000065   7401         MOV     A,#0x1
   \   000067   12....       LCALL   ?XSTACK_DISP0_8
   \   00006A   12....       LCALL   ?Subroutine0 & 0xFFFF
    152                  zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
   \                     ??CrossCallReturnLabel_0:
   \   00006D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    153                  zb_SystemReset();
   \   000070                ; Setup parameters for call to function zb_SystemReset
   \   000070   90....       MOV     DPTR,#(zb_SystemReset & 0xffff)
   \   000073   74..         MOV     A,#((zb_SystemReset >> 16) & 0xff)
   \   000075   800A         SJMP    ??zb_HandleKeys_4
    154          
    155                }
    156                else
    157                {
    158                  // Initiate a binding
    159                  zb_AllowBind( myAllowBindTimeout );
   \                     ??zb_HandleKeys_2:
   \   000077                ; Setup parameters for call to function zb_AllowBind
   \   000077   90....       MOV     DPTR,#??myAllowBindTimeout
   \   00007A   E0           MOVX    A,@DPTR
   \   00007B   F9           MOV     R1,A
   \   00007C   90....       MOV     DPTR,#(zb_AllowBind & 0xffff)
   \   00007F   74..         MOV     A,#((zb_AllowBind >> 16) & 0xff)
   \                     ??zb_HandleKeys_4:
   \   000081   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    160                }
    161              }
    162              if ( keys & HAL_KEY_SW_2 )
   \                     ??zb_HandleKeys_1:
   \   000084   EE           MOV     A,R6
   \   000085   A2E1         MOV     C,0xE0 /* A   */.1
   \   000087   5061         JNC     ??zb_HandleKeys_0
    163              {
    164                if ( myAppState == APP_INIT )
   \   000089   90....       MOV     DPTR,#??myAppState
   \   00008C   E0           MOVX    A,@DPTR
   \   00008D   705B         JNZ     ??zb_HandleKeys_0
    165                {
    166                  // In the init state, keys are used to indicate the logical mode.
    167                  // Key 2 starts device as a router
    168          
    169                  zb_ReadConfiguration( ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType );
   \   00008F                ; Setup parameters for call to function zb_ReadConfiguration
   \   00008F   85..82       MOV     DPL,?XSP + 0
   \   000092   85..83       MOV     DPH,?XSP + 1
   \   000095   AC82         MOV     R4,DPL
   \   000097   AD83         MOV     R5,DPH
   \   000099   7A01         MOV     R2,#0x1
   \   00009B   7987         MOV     R1,#-0x79
   \   00009D   90....       MOV     DPTR,#(zb_ReadConfiguration & 0xffff)
   \   0000A0   74..         MOV     A,#((zb_ReadConfiguration >> 16) & 0xff)
   \   0000A2   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    170                  if ( logicalType != ZG_DEVICETYPE_ENDDEVICE )
   \   0000A5   85..82       MOV     DPL,?XSP + 0
   \   0000A8   85..83       MOV     DPH,?XSP + 1
   \   0000AB   E0           MOVX    A,@DPTR
   \   0000AC   6402         XRL     A,#0x2
   \   0000AE   6012         JZ      ??zb_HandleKeys_5
    171                  {
    172                    logicalType = ZG_DEVICETYPE_ROUTER;
   \   0000B0   7401         MOV     A,#0x1
   \   0000B2   F0           MOVX    @DPTR,A
    173                    zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
   \   0000B3                ; Setup parameters for call to function zb_WriteConfiguration
   \   0000B3   AC82         MOV     R4,DPL
   \   0000B5   AD83         MOV     R5,DPH
   \   0000B7   FA           MOV     R2,A
   \   0000B8   7987         MOV     R1,#-0x79
   \   0000BA   90....       MOV     DPTR,#(zb_WriteConfiguration & 0xffff)
   \   0000BD   74..         MOV     A,#((zb_WriteConfiguration >> 16) & 0xff)
   \   0000BF   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    174                  }
    175          
    176                  zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
   \                     ??zb_HandleKeys_5:
   \   0000C2                ; Setup parameters for call to function zb_ReadConfiguration
   \   0000C2   7401         MOV     A,#0x1
   \   0000C4   12....       LCALL   ?XSTACK_DISP0_8
   \   0000C7   AC82         MOV     R4,DPL
   \   0000C9   AD83         MOV     R5,DPH
   \   0000CB   7A01         MOV     R2,#0x1
   \   0000CD   7903         MOV     R1,#0x3
   \   0000CF   90....       MOV     DPTR,#(zb_ReadConfiguration & 0xffff)
   \   0000D2   74..         MOV     A,#((zb_ReadConfiguration >> 16) & 0xff)
   \   0000D4   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    177                  startOptions = ZCD_STARTOPT_AUTO_START;
   \   0000D7   7401         MOV     A,#0x1
   \   0000D9   12....       LCALL   ?XSTACK_DISP0_8
   \   0000DC   12....       LCALL   ?Subroutine0 & 0xFFFF
    178                  zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
   \                     ??CrossCallReturnLabel_1:
   \   0000DF   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    179                  zb_SystemReset();
   \   0000E2                ; Setup parameters for call to function zb_SystemReset
   \   0000E2   90....       MOV     DPTR,#(zb_SystemReset & 0xffff)
   \   0000E5   74..         MOV     A,#((zb_SystemReset >> 16) & 0xff)
   \   0000E7   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    180                }
    181                else
    182                {
    183                }
    184              }
    185              if ( keys & HAL_KEY_SW_3 )
    186              {
    187              }
    188              if ( keys & HAL_KEY_SW_4 )
    189              {
    190              }
    191            }
    192          }
   \                     ??zb_HandleKeys_0:
   \   0000EA   7402         MOV     A,#0x2
   \   0000EC   12....       LCALL   ?DEALLOC_XSTACK8
   \   0000EF                REQUIRE ?Subroutine1
   \   0000EF                ; // Fall through to label ?Subroutine1

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   7F01         MOV     R7,#0x1
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   7404         MOV     A,#0x4
   \   000002   F0           MOVX    @DPTR,A
   \   000003                ; Setup parameters for call to function zb_WriteConfiguration
   \   000003                ; Setup parameters for call to function zb_WriteConfiguration
   \   000003   AC82         MOV     R4,DPL
   \   000005   AD83         MOV     R5,DPH
   \   000007   7A01         MOV     R2,#0x1
   \   000009   7903         MOV     R1,#0x3
   \   00000B   90....       MOV     DPTR,#(zb_WriteConfiguration & 0xffff)
   \   00000E   74..         MOV     A,#((zb_WriteConfiguration >> 16) & 0xff)
   \   000010   22           RET
    193          /******************************************************************************
    194           * @fn          zb_StartConfirm
    195           *
    196           * @brief       The zb_StartConfirm callback is called by the ZigBee stack
    197           *              after a start request operation completes
    198           *
    199           * @param       status - The status of the start operation.  Status of
    200           *                       ZB_SUCCESS indicates the start operation completed
    201           *                       successfully.  Else the status is an error code.
    202           *
    203           * @return      none
    204           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    205          void zb_StartConfirm( uint8 status )
   \                     zb_StartConfirm:
    206          {

⌨️ 快捷键说明

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