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

📄 sampleapp.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
    299              return (events ^ SYS_EVENT_MSG);
   \                     ??SampleApp_ProcessEvent_7:
   \   0000E8   EE           MOV     A,R6
   \   0000E9   FA           MOV     R2,A
   \   0000EA   7480         MOV     A,#-0x80
   \   0000EC   6F           XRL     A,R7
   \                     ??SampleApp_ProcessEvent_12:
   \   0000ED   FB           MOV     R3,A
   \   0000EE   8043         SJMP    ??SampleApp_ProcessEvent_13
    300            }
    301          
    302            // Send a message out - This event is generated by a timer
    303            //  (setup in SampleApp_Init()).
    304            if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
   \                     ??SampleApp_ProcessEvent_1:
   \   0000F0   EE           MOV     A,R6
   \   0000F1   A2E0         MOV     C,0xE0 /* A   */.0
   \   0000F3   503A         JNC     ??SampleApp_ProcessEvent_14
    305            {
    306              // Send the periodic message
    307             // SampleApp_SendPeriodicMessage();
    308          
    309          P1_0=~P1_0;
   \   0000F5   A290         MOV     C,0x90.0
   \   0000F7   B3           CPL     C
   \   0000F8   9290         MOV     0x90.0,C
    310          SampleApp_SendPeriodicMessage();
   \   0000FA                ; Setup parameters for call to function SampleApp_SendPeriodicMessage
   \   0000FA   90....       MOV     DPTR,#(SampleApp_SendPeriodicMessage & 0xffff)
   \   0000FD   74..         MOV     A,#((SampleApp_SendPeriodicMessage >> 16) & 0xff)
   \   0000FF   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    311              // Setup to send message again in normal period (+ a little jitter)
    312              osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
    313                  (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF)) );
   \   000102                ; Setup parameters for call to function osal_rand
   \   000102   90....       MOV     DPTR,#(osal_rand & 0xffff)
   \   000105   74..         MOV     A,#((osal_rand >> 16) & 0xff)
   \   000107   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00010A   8A..         MOV     ?V0 + 0,R2
   \   00010C   A8..         MOV     R0,?V0 + 0
   \   00010E                ; Setup parameters for call to function osal_start_timerEx
   \   00010E   74E8         MOV     A,#-0x18
   \   000110   28           ADD     A,R0
   \   000111   FC           MOV     R4,A
   \   000112   7403         MOV     A,#0x3
   \   000114   3400         ADDC    A,#0x0
   \   000116   FD           MOV     R5,A
   \   000117   7A01         MOV     R2,#0x1
   \   000119   7B00         MOV     R3,#0x0
   \   00011B   90....       MOV     DPTR,#SampleApp_TaskID
   \   00011E   E0           MOVX    A,@DPTR
   \   00011F   F9           MOV     R1,A
   \   000120   90....       MOV     DPTR,#(osal_start_timerEx & 0xffff)
   \   000123   74..         MOV     A,#((osal_start_timerEx >> 16) & 0xff)
   \   000125   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    314          
    315              // return unprocessed events
    316              return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
   \   000128   7401         MOV     A,#0x1
   \   00012A   6E           XRL     A,R6
   \   00012B   FA           MOV     R2,A
   \   00012C   EF           MOV     A,R7
   \   00012D   80BE         SJMP    ??SampleApp_ProcessEvent_12
    317            }
    318          
    319            // Discard unknown events
    320            return 0;
   \                     ??SampleApp_ProcessEvent_14:
   \   00012F   7A00         MOV     R2,#0x0
   \   000131   7B00         MOV     R3,#0x0
   \                     ??SampleApp_ProcessEvent_13:
   \   000133   7F04         MOV     R7,#0x4
   \   000135   02....       LJMP    ?BANKED_LEAVE_XDATA
    321          }
    322          
    323          /*********************************************************************
    324           * Event Generation Functions
    325           */
    326          /*********************************************************************
    327           * @fn      SampleApp_HandleKeys
    328           *
    329           * @brief   Handles all key events for this device.
    330           *
    331           * @param   shift - true if in shift/alt.
    332           * @param   keys - bit field for key events. Valid entries:
    333           *                 HAL_KEY_SW_2
    334           *                 HAL_KEY_SW_1
    335           *
    336           * @return  none
    337           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    338          void SampleApp_HandleKeys( uint8 shift, uint8 keys )
   \                     SampleApp_HandleKeys:
    339          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
    340            if ( keys & HAL_KEY_SW_1 )
   \   000007   A2E0         MOV     C,0xE0 /* A   */.0
   \   000009   500C         JNC     ??SampleApp_HandleKeys_0
    341            {
    342              /* This key sends the Flash Command is sent to Group 1.
    343               * This device will not receive the Flash Command from this
    344               * device (even if it belongs to group 1).
    345               */
    346              SampleApp_SendFlashMessage( SAMPLEAPP_FLASH_DURATION );
   \   00000B                ; Setup parameters for call to function SampleApp_SendFlashMessage
   \   00000B   7AE8         MOV     R2,#-0x18
   \   00000D   7B03         MOV     R3,#0x3
   \   00000F   90....       MOV     DPTR,#(SampleApp_SendFlashMessage & 0xffff)
   \   000012   74..         MOV     A,#((SampleApp_SendFlashMessage >> 16) & 0xff)
   \   000014   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    347            }
    348          
    349            if ( keys & HAL_KEY_SW_2 )
   \                     ??SampleApp_HandleKeys_0:
   \   000017   EE           MOV     A,R6
   \   000018   A2E1         MOV     C,0xE0 /* A   */.1
   \   00001A   502F         JNC     ??SampleApp_HandleKeys_1
    350            {
    351              /* The Flashr Command is sent to Group 1.
    352               * This key toggles this device in and out of group 1.
    353               * If this device doesn't belong to group 1, this application
    354               * will not receive the Flash command sent to group 1.
    355               */
    356              aps_Group_t *grp;
    357              grp = aps_FindGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );
    358              if ( grp )
   \   00001C                ; Setup parameters for call to function aps_FindGroup
   \   00001C   7A01         MOV     R2,#0x1
   \   00001E   7B00         MOV     R3,#0x0
   \   000020   7914         MOV     R1,#0x14
   \   000022   90....       MOV     DPTR,#(aps_FindGroup & 0xffff)
   \   000025   74..         MOV     A,#((aps_FindGroup >> 16) & 0xff)
   \   000027   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00002A   EA           MOV     A,R2
   \   00002B   7001         JNZ     ??SampleApp_HandleKeys_2
   \   00002D   EB           MOV     A,R3
   \                     ??SampleApp_HandleKeys_2:
   \   00002E   600D         JZ      ??SampleApp_HandleKeys_3
    359              {
    360                // Remove from the group
    361                aps_RemoveGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );
   \   000030                ; Setup parameters for call to function aps_RemoveGroup
   \   000030   7A01         MOV     R2,#0x1
   \   000032   7B00         MOV     R3,#0x0
   \   000034   7914         MOV     R1,#0x14
   \   000036   90....       MOV     DPTR,#(aps_RemoveGroup & 0xffff)
   \   000039   74..         MOV     A,#((aps_RemoveGroup >> 16) & 0xff)
   \   00003B   800B         SJMP    ??SampleApp_HandleKeys_4
    362              }
    363              else
    364              {
    365                // Add to the flash group
    366                aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );
   \                     ??SampleApp_HandleKeys_3:
   \   00003D                ; Setup parameters for call to function aps_AddGroup
   \   00003D   7A..         MOV     R2,#(SampleApp_Group & 0xff)
   \   00003F   7B..         MOV     R3,#((SampleApp_Group >> 8) & 0xff)
   \   000041   7914         MOV     R1,#0x14
   \   000043   90....       MOV     DPTR,#(aps_AddGroup & 0xffff)
   \   000046   74..         MOV     A,#((aps_AddGroup >> 16) & 0xff)
   \                     ??SampleApp_HandleKeys_4:
   \   000048   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    367              }
    368            }
    369          }
   \                     ??SampleApp_HandleKeys_1:
   \   00004B   80..         SJMP    ??Subroutine0_0

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   12....       LCALL   ?DEALLOC_XSTACK8
   \                     ??Subroutine0_0:
   \   000003   7F02         MOV     R7,#0x2
   \   000005   02....       LJMP    ?BANKED_LEAVE_XDATA
    370          
    371          /*********************************************************************
    372           * LOCAL FUNCTIONS
    373           */
    374          
    375          /*********************************************************************
    376           * @fn      SampleApp_MessageMSGCB
    377           *
    378           * @brief   Data message processor callback.  This function processes
    379           *          any incoming data - probably from other devices.  So, based
    380           *          on cluster ID, perform the intended action.
    381           *
    382           * @param   none
    383           *
    384           * @return  none
    385           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    386          void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
   \                     SampleApp_MessageMSGCB:
    387          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
    388            uint16 flashTime;
    389          
    390            switch ( pkt->clusterId )
   \   000005   8A82         MOV     DPL,R2
   \   000007   8B83         MOV     DPH,R3
   \   000009   A3           INC     DPTR
   \   00000A   A3           INC     DPTR
   \   00000B   A3           INC     DPTR
   \   00000C   A3           INC     DPTR
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   F5..         MOV     ?V0 + 0,A
   \   000010   A3           INC     DPTR
   \   000011   E0           MOVX    A,@DPTR
   \   000012   F5..         MOV     ?V0 + 1,A
   \   000014   78..         MOV     R0,#?V0 + 0
   \   000016   12....       LCALL   ?US_SWITCH_DENSE
   \                     `?<Jumptable for SampleApp_MessageMSGCB>_0`:
   \   000019   0200         DW        2
   \   00001B   00           DB        0
   \   00001C   ....         DW        ??SampleApp_MessageMSGCB_0
   \   00001E   ....         DW        ??SampleApp_MessageMSGCB_1
    391            {
    392              case SAMPLEAPP_PERIODIC_CLUSTERID:
    393                break;
    394          
    395              case SAMPLEAPP_FLASH_CLUSTERID:
    396                flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
    397                HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
   \                     ??SampleApp_MessageMSGCB_1:
   \   000020   EA           MOV     A,R2
   \   000021   2415         ADD     A,#0x15
   \   000023   F582         MOV     DPL,A
   \   000025   EB           MOV     A,R3
   \   000026   3400         ADDC    A,#0x0
   \   000028   F583         MOV     DPH,A
   \   00002A   E0           MOVX    A,@DPTR

⌨️ 快捷键说明

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