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

📄 sampleapp.s51

📁 CC2431无线定位程序非常有参考价值
💻 S51
📖 第 1 页 / 共 4 页
字号:
        MOV	DPL,R6
        MOV	DPH,R7
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	?V0 + 2,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	?V0 + 3,A
        MOV	R0,#?V0 + 2
        LCALL	?US_SWITCH_DENSE
`?<Jumptable for SampleApp_ProcessEvent>_1`:
        DW        16
        DB        0
        DW        ??SampleApp_ProcessEvent_5
        DW        ??SampleApp_ProcessEvent_12
??SampleApp_ProcessEvent_12:
        MOV	A,R6
        ADD	A,#0x15
        MOV	DPL,A
        MOV	A,R7
        ADDC	A,#0x0
        MOV	DPH,A
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        MOVX	A,@DPTR
        LCALL	?UC_SWITCH_SPARSE
`?<Jumptable for SampleApp_ProcessEvent>_2`:
        DB        0
        DB        3
        DB        240
        DW        ??SampleApp_ProcessEvent_13
        DB        255
        DW        ??SampleApp_ProcessEvent_14
        DB        0
        DW        ??SampleApp_ProcessEvent_15
        DW        ??SampleApp_ProcessEvent_5
??SampleApp_ProcessEvent_15:
        ; Setup parameters for call to function HalLedSet
        MOV	R2,#0x0
??SampleApp_ProcessEvent_16:
        MOV	R1,#0x4
        MOV	DPTR,#(HalLedSet & 0xffff)
        MOV	A,#((HalLedSet >> 16) & 0xff)
        LJMP	??SampleApp_ProcessEvent_6 & 0xFFFF
??SampleApp_ProcessEvent_13:
        ; Setup parameters for call to function HalLedSet
        MOV	R2,#0x8
        SJMP	??SampleApp_ProcessEvent_16
??SampleApp_ProcessEvent_14:
        ; Setup parameters for call to function HalLedSet
        MOV	R2,#0x1
        SJMP	??SampleApp_ProcessEvent_16
//  305     }
//  306 
//  307     // Return unprocessed events.
//  308     return ( events ^ SYS_EVENT_MSG );
??SampleApp_ProcessEvent_8:
        MOV	R2,?V0 + 0
        MOV	A,#-0x80
        XRL	A,?V0 + 1
        MOV	R3,A
        SJMP	??SampleApp_ProcessEvent_17
//  309   }
//  310 
//  311   return 0;  // Discard unknown events
??SampleApp_ProcessEvent_2:
        MOV	R2,#0x0
        MOV	R3,#0x0
??SampleApp_ProcessEvent_17:
        MOV	A,#0x5
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 12)
        MOV	R7,#0x4
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock3
//  312 }
//  313 
//  314 /*********************************************************************
//  315  * @fn      SampleApp_NoACK
//  316  *
//  317  * @brief   Sample Application recovery from getting a ZMacNoAck.
//  318  *
//  319  * @return  none
//  320  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  321 void SampleApp_NoACK( void )
SampleApp_NoACK:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function SampleApp_NoACK
//  322 {
        FUNCALL SampleApp_NoACK, ZDApp_SendEventMsg
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL SampleApp_NoACK, SampleApp_Sleep
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  323 #if defined( POWER_SAVING )
//  324   rejoinPending = TRUE;
        MOV	A,#0x1
        MOV	DPTR,#??rejoinPending
        MOVX	@DPTR,A
//  325   ZDApp_SendEventMsg( ZDO_NWK_JOIN_REQ, 0, NULL );
        ; Setup parameters for call to function ZDApp_SendEventMsg
        MOV	R4,#0x0
        MOV	R5,#0x0
        MOV	R2,#0x0
        MOV	R1,#0x3
        MOV	DPTR,#(ZDApp_SendEventMsg & 0xffff)
        MOV	A,#((ZDApp_SendEventMsg >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  326 
//  327   SampleApp_Sleep( FALSE );
        ; Setup parameters for call to function SampleApp_Sleep
        MOV	R1,#0x0
        MOV	DPTR,#(SampleApp_Sleep & 0xffff)
        MOV	A,#((SampleApp_Sleep >> 16) & 0xff)
        LJMP	?Subroutine0 & 0xFFFF
        CFI EndBlock cfiBlock4
//  328 #endif
//  329 }
//  330 
//  331 /*********************************************************************
//  332  * @fn      SampleApp_Sleep
//  333  *
//  334  * @brief   Sample Application set allow/disallow sleep mode.
//  335  *
//  336  * @return  none
//  337  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  338 void SampleApp_Sleep( uint8 allow )
SampleApp_Sleep:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function SampleApp_Sleep
//  339 {
        FUNCALL SampleApp_Sleep, osal_pwrmgr_task_state
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL SampleApp_Sleep, NLME_SetPollRate
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL SampleApp_Sleep, osal_pwrmgr_task_state
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL SampleApp_Sleep, NLME_SetPollRate
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  340 #if defined( POWER_SAVING )
//  341   if ( allow )
        MOV	A,R1
        JZ	??SampleApp_Sleep_0
//  342   {
//  343     osal_pwrmgr_task_state( NWK_TaskID, PWRMGR_CONSERVE );
        ; Setup parameters for call to function osal_pwrmgr_task_state
        MOV	R2,#0x0
        MOV	DPTR,#NWK_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(osal_pwrmgr_task_state & 0xffff)
        MOV	A,#((osal_pwrmgr_task_state >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  344     NLME_SetPollRate( 0 );
        ; Setup parameters for call to function NLME_SetPollRate
        MOV	R2,#0x0
        MOV	R3,#0x0
        SJMP	??SampleApp_Sleep_1
//  345   }
//  346   else
//  347   {
//  348     osal_pwrmgr_task_state( NWK_TaskID, PWRMGR_HOLD );
??SampleApp_Sleep_0:
        ; Setup parameters for call to function osal_pwrmgr_task_state
        MOV	R2,#0x1
        MOV	DPTR,#NWK_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(osal_pwrmgr_task_state & 0xffff)
        MOV	A,#((osal_pwrmgr_task_state >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  349     NLME_SetPollRate( 1000 );
        ; Setup parameters for call to function NLME_SetPollRate
        MOV	R2,#-0x18
        MOV	R3,#0x3
??SampleApp_Sleep_1:
        MOV	DPTR,#(NLME_SetPollRate & 0xffff)
        MOV	A,#((NLME_SetPollRate >> 16) & 0xff)
        LJMP	?Subroutine0 & 0xFFFF
        CFI EndBlock cfiBlock5
//  350   }
//  351 #endif
//  352 }
//  353 
//  354 /*********************************************************************
//  355  * @fn      handleKeys
//  356  *
//  357  * @brief   Handles all key events for this device.
//  358  *
//  359  * @param   shift - true if in shift/alt.
//  360  * @param   keys - bit field for key events. Valid entries:
//  361  *
//  362  * @return  none
//  363  */
//  364 static void handleKeys( uint8 shift, uint8 keys )
//  365 {
//  366 /* POWER_SAVING key press interrupt uses shift key to awaken from deep sleep,
//  367  * so it is not available.
//  368  */
//  369 #if !defined( POWER_SAVING )
//  370   /* Give the LocationProfile access to 4 keys by sending any Shif-Key
//  371    * sequence to the profile as a normal Key.
//  372    */
//  373   if ( shift )
//  374   {
//  375     LocationHandleKeys( keys );
//  376   }
//  377   else
//  378 #endif
//  379   {
//  380     if ( keys & HAL_KEY_SW_1 )
//  381     {
//  382     }
//  383 
//  384     if ( keys & HAL_KEY_SW_2 )
//  385     {
//  386     }
//  387 
//  388     if ( keys & HAL_KEY_SW_3 )
//  389     {
//  390     }
//  391 
//  392     if ( keys & HAL_KEY_SW_4 )
//  393     {
//  394     }
//  395   }
//  396 
//  397 #if defined ( LOCATION_BLINDNODE )
//  398   {

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  399     static uint8 transId;
??transId:
        DS 1

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_InputClusterList>`:
        DW 1

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_OutputClusterList>`:
        DW 1, 16

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_SimpleDesc>`:
        DB 10
        DW 8193, 13
        DB 15, 2
        DW ??SampleApp_InputClusterList
        DB 4
        DW ??SampleApp_OutputClusterList

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_epDesc>`:
        DB 10
        DW SampleApp_TaskID, ??SampleApp_SimpleDesc
        DB 0

        END
//  400 
//  401     uint8 actionId = SAMPLE_APP_TOGGLE;
//  402     afAddrType_t dstAddr;
//  403 
//  404     dstAddr.addrMode = afAddrBroadcast;
//  405     dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVALL;
//  406     dstAddr.endPoint = SAMPLE_APP_ENDPOINT;
//  407 
//  408     // Control all lights within 1-hop radio range.
//  409     (void)AF_DataRequest( &dstAddr, (endPointDesc_t *)&SampleApp_epDesc,
//  410                            SAMPLE_APP_ON_OFF_ID, 1, &actionId,
//  411                           &transId, AF_SKIP_ROUTING, 1 );
//  412 
//  413     BlindNode_FindRequest();
//  414   }
//  415 #endif
//  416 }
//  417 
//  418 /*********************************************************************
//  419  * @fn      processMSGCmd
//  420  *
//  421  * @brief   Data message processor callback.
//  422  *
//  423  * @param   none
//  424  *
//  425  * @return  none
//  426  */
//  427 static void processMSGCmd( afIncomingMSGPacket_t *pkt )
//  428 {
//  429   switch ( pkt->clusterId )
//  430   {
//  431   case SAMPLE_APP_ON_OFF_ID:
//  432     switch ( pkt->cmd.Data[0] )
//  433     {
//  434     case SAMPLE_APP_OFF:
//  435       HalLedSet( HAL_LED_3, HAL_LED_MODE_OFF );
//  436       break;
//  437 
//  438     case SAMPLE_APP_TOGGLE:
//  439       HalLedSet( HAL_LED_3, HAL_LED_MODE_TOGGLE );
//  440       break;
//  441 
//  442     case SAMPLE_APP_ON:
//  443       HalLedSet( HAL_LED_3, HAL_LED_MODE_ON );
//  444       break;
//  445     }
//  446     break;
//  447 
//  448   default:
//  449     break;
//  450   }
//  451 }
//  452 
//  453 /*********************************************************************
//  454 *********************************************************************/
// 
// 752 bytes in segment BANKED_CODE
//  24 bytes in segment XDATA_I
//  24 bytes in segment XDATA_ID
//   3 bytes in segment XDATA_Z
// 
// 776 bytes of CODE  memory
//  27 bytes of XDATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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