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

📄 sampleapp.s51

📁 cc2430讀取短地址程式
💻 S51
📖 第 1 页 / 共 4 页
字号:
        MOV	R2,?V0 + 0
        MOV	R3,?V0 + 1
        MOV	DPTR,#(SampleApp_MessageMSGCB & 0xffff)
        MOV	A,#((SampleApp_MessageMSGCB >> 16) & 0xff)
        SJMP	??SampleApp_ProcessEvent_6
//  288     }
//  289 
//  290     // return unprocessed events
//  291     return (events ^ SYS_EVENT_MSG);
??SampleApp_ProcessEvent_8:
        MOV	A,R6
        MOV	R2,A
        MOV	A,#-0x80
        XRL	A,R7
??SampleApp_ProcessEvent_11:
        MOV	R3,A
        SJMP	??SampleApp_ProcessEvent_12
//  292   }
//  293 
//  294   // Send a message out - This event is generated by a timer
//  295   //  (setup in SampleApp_Init()).
//  296   if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
??SampleApp_ProcessEvent_1:
        MOV	A,R6
        MOV	C,0xE0 /* A   */.0
        JNC	??SampleApp_ProcessEvent_13
//  297   {
//  298     // Send the periodic message
//  299     SampleApp_SendPeriodicMessage();
        ; Setup parameters for call to function SampleApp_SendPeriodicMessage
        MOV	DPTR,#(SampleApp_SendPeriodicMessage & 0xffff)
        MOV	A,#((SampleApp_SendPeriodicMessage >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  300 
//  301     // Setup to send message again in normal period (+ a little jitter)
//  302     osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
//  303         (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF)) );
        ; Setup parameters for call to function osal_rand
        MOV	DPTR,#(osal_rand & 0xffff)
        MOV	A,#((osal_rand >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	?V0 + 0,R2
        MOV	R0,?V0 + 0
        ; Setup parameters for call to function osal_start_timerEx
        MOV	A,#-0x78
        ADD	A,R0
        MOV	R4,A
        MOV	A,#0x13
        ADDC	A,#0x0
        MOV	R5,A
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	DPTR,#SampleApp_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(osal_start_timerEx & 0xffff)
        MOV	A,#((osal_start_timerEx >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  304 
//  305     // return unprocessed events
//  306     return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
        MOV	A,#0x1
        XRL	A,R6
        MOV	R2,A
        MOV	A,R7
        SJMP	??SampleApp_ProcessEvent_11
//  307   }
//  308 
//  309   // Discard unknown events
//  310   return 0;
??SampleApp_ProcessEvent_13:
        MOV	R2,#0x0
        MOV	R3,#0x0
??SampleApp_ProcessEvent_12:
        MOV	R7,#0x4
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock1
//  311 }
//  312 
//  313 /*********************************************************************
//  314  * Event Generation Functions
//  315  */
//  316 /*********************************************************************
//  317  * @fn      SampleApp_HandleKeys
//  318  *
//  319  * @brief   Handles all key events for this device.
//  320  *
//  321  * @param   shift - true if in shift/alt.
//  322  * @param   keys - bit field for key events. Valid entries:
//  323  *                 HAL_KEY_SW_2
//  324  *                 HAL_KEY_SW_1
//  325  *
//  326  * @return  none
//  327  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  328 void SampleApp_HandleKeys( uint8 shift, uint8 keys )
SampleApp_HandleKeys:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function SampleApp_HandleKeys
//  329 {
        FUNCALL SampleApp_HandleKeys, SampleApp_SendFlashMessage
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL SampleApp_HandleKeys, aps_FindGroup
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL SampleApp_HandleKeys, aps_RemoveGroup
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL SampleApp_HandleKeys, aps_AddGroup
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        MOV	A,#-0xa
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
//  330   if ( keys & HAL_KEY_SW_1 )
        MOV	C,0xE0 /* A   */.0
        JNC	??SampleApp_HandleKeys_0
//  331   {
//  332     /* This key sends the Flash Command is sent to Group 1.
//  333      * This device will not receive the Flash Command from this
//  334      * device (even if it belongs to group 1).
//  335      */
//  336     SampleApp_SendFlashMessage( SAMPLEAPP_FLASH_DURATION );
        ; Setup parameters for call to function SampleApp_SendFlashMessage
        MOV	R2,#-0x18
        MOV	R3,#0x3
        MOV	DPTR,#(SampleApp_SendFlashMessage & 0xffff)
        MOV	A,#((SampleApp_SendFlashMessage >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  337   }
//  338 
//  339   if ( keys & HAL_KEY_SW_2 )
??SampleApp_HandleKeys_0:
        MOV	A,R6
        MOV	C,0xE0 /* A   */.1
        JNC	??SampleApp_HandleKeys_1
//  340   {
//  341     /* The Flashr Command is sent to Group 1.
//  342      * This key toggles this device in and out of group 1.
//  343      * If this device doesn't belong to group 1, this application
//  344      * will not receive the Flash command sent to group 1.
//  345      */
//  346     aps_Group_t *grp;
//  347     grp = aps_FindGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );
//  348     if ( grp )
        ; Setup parameters for call to function aps_FindGroup
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	R1,#0x14
        MOV	DPTR,#(aps_FindGroup & 0xffff)
        MOV	A,#((aps_FindGroup >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,R2
        JNZ	??SampleApp_HandleKeys_2
        MOV	A,R3
??SampleApp_HandleKeys_2:
        JZ	??SampleApp_HandleKeys_3
//  349     {
//  350       // Remove from the group
//  351       aps_RemoveGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );
        ; Setup parameters for call to function aps_RemoveGroup
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	R1,#0x14
        MOV	DPTR,#(aps_RemoveGroup & 0xffff)
        MOV	A,#((aps_RemoveGroup >> 16) & 0xff)
        SJMP	??SampleApp_HandleKeys_4
//  352     }
//  353     else
//  354     {
//  355       // Add to the flash group
//  356       aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );
??SampleApp_HandleKeys_3:
        ; Setup parameters for call to function aps_AddGroup
        MOV	R2,#(SampleApp_Group & 0xff)
        MOV	R3,#((SampleApp_Group >> 8) & 0xff)
        MOV	R1,#0x14
        MOV	DPTR,#(aps_AddGroup & 0xffff)
        MOV	A,#((aps_AddGroup >> 16) & 0xff)
??SampleApp_HandleKeys_4:
        LCALL	?BCALL               ; Banked call to: DPTR()
//  357     }
//  358   }
//  359 }
??SampleApp_HandleKeys_1:
        LJMP	??Subroutine1_0 & 0xFFFF
        CFI EndBlock cfiBlock2
//  360 
//  361 /*********************************************************************
//  362  * LOCAL FUNCTIONS
//  363  */
//  364 
//  365 /*********************************************************************
//  366  * @fn      SampleApp_MessageMSGCB
//  367  *
//  368  * @brief   Data message processor callback.  This function processes
//  369  *          any incoming data - probably from other devices.  So, based
//  370  *          on cluster ID, perform the intended action.
//  371  *
//  372  * @param   none
//  373  *
//  374  * @return  none
//  375  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  376 UINT8 SendData(UINT8 *buf, UINT16 addr, UINT8 Leng)
SendData:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function SendData
//  377 {
        FUNCALL SendData, AF_DataRequest
        LOCFRAME XSTACK, 23, STACK
        ARGFRAME XSTACK, 23, STACK
        MOV	A,#-0xa
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 4
        MOV	A,#-0x4
        LCALL	?ALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 14)
//  378 	afAddrType_t SendDataAddr;
//  379 	
//  380 	SendDataAddr.addrMode = (afAddrMode_t)Addr16Bit;
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        MOV	A,#0x2
        MOVX	@DPTR,A
//  381 	SendDataAddr.endPoint = SAMPLEAPP_ENDPOINT;
        MOV	A,#0x3
        LCALL	?XSTACK_DISP0_8
        MOV	A,#0x14
        MOVX	@DPTR,A
//  382 	SendDataAddr.addr.shortAddr = addr;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	A,R4
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,R5
        MOVX	@DPTR,A
//  383         if ( AF_DataRequest( &SendDataAddr, &SampleApp_epDesc,
//  384                        SAMPLEAPP_PERIODIC_CLUSTERID,
//  385                        Leng,
//  386                        buf,
//  387                        &SampleApp_TransID,
//  388                        AF_DISCV_ROUTE,
//  389                        AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
        ; Setup parameters for call to function AF_DataRequest
        MOV	?V0 + 0,#0xa
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_ONE
        CFI CFA_XSP16 add(XSP16, 15)
        MOV	?V0 + 0,#(SampleApp_TransID & 0xff)
        MOV	?V0 + 1,#((SampleApp_TransID >> 8) & 0xff)
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 17)
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 19)
        MOV	?V0 + 0,R1
        MOV	?V0 + 1,#0x0
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 21)
        MOV	?V0 + 0,#0x1
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 23)
        MOV	R1,#0x20
        MOV	R4,#(SampleApp_epDesc & 0xff)
        MOV	R5,#((SampleApp_epDesc >> 8) & 0xff)
        MOV	A,#0x9
        LCALL	?XSTACK_DISP0_8
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	DPTR,#(AF_DataRequest & 0xffff)
        MOV	A,#((AF_DataRequest >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x9
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 14)
        MOV	A,R1
        JNZ	??SendData_0
//  390 	{
//  391 		return 1;
        MOV	R1,#0x1
        SJMP	??SendData_1
//  392 	}
//  393 	else
//  394 	{
//  395 		return 0;// Error occurred in request to send.
??SendData_0:
        MOV	R1,#0x0
??SendData_1:
        MOV	A,#0x4
        LJMP	?Subroutine1 & 0xFFFF
        CFI EndBlock cfiBlock3
//  396 	}
//  397 }
//  398 
//  399 /*********************************************************************
//  400  * @fn      SampleApp_MessageMSGCB
//  401  *
//  402  * @brief   

⌨️ 快捷键说明

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