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

📄 sampleapp.s51

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

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  329 void SampleApp_HandleKeys( uint8 shift, uint8 keys )
SampleApp_HandleKeys:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function SampleApp_HandleKeys
//  330 {
        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
//  331   if ( keys & HAL_KEY_SW_1 )
        MOV	C,0xE0 /* A   */.0
        JNC	??SampleApp_HandleKeys_0
//  332   {
//  333     /* This key sends the Flash Command is sent to Group 1.
//  334      * This device will not receive the Flash Command from this
//  335      * device (even if it belongs to group 1).
//  336      */
//  337     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()
//  338   }
//  339 
//  340   if ( keys & HAL_KEY_SW_2 )
??SampleApp_HandleKeys_0:
        MOV	A,R6
        MOV	C,0xE0 /* A   */.1
        JNC	??SampleApp_HandleKeys_1
//  341   {
//  342     /* The Flashr Command is sent to Group 1.
//  343      * This key toggles this device in and out of group 1.
//  344      * If this device doesn't belong to group 1, this application
//  345      * will not receive the Flash command sent to group 1.
//  346      */
//  347     aps_Group_t *grp;
//  348     grp = aps_FindGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );
//  349     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
//  350     {
//  351       // Remove from the group
//  352       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
//  353     }
//  354     else
//  355     {
//  356       // Add to the flash group
//  357       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()
//  358     }
//  359   }
//  360 }
??SampleApp_HandleKeys_1:
        LJMP	??Subroutine1_0 & 0xFFFF
        CFI EndBlock cfiBlock2
//  361 
//  362 /*********************************************************************
//  363  * LOCAL FUNCTIONS
//  364  */
//  365 
//  366 /*********************************************************************
//  367  * @fn      SampleApp_MessageMSGCB
//  368  *
//  369  * @brief   Data message processor callback.  This function processes
//  370  *          any incoming data - probably from other devices.  So, based
//  371  *          on cluster ID, perform the intended action.
//  372  *
//  373  * @param   none
//  374  *
//  375  * @return  none
//  376  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  377 UINT8 SendData(UINT8 *buf, UINT16 addr, UINT8 Leng)
SendData:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function SendData
//  378 {
        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)
//  379 	afAddrType_t SendDataAddr;
//  380 	
//  381 	SendDataAddr.addrMode = (afAddrMode_t)Addr16Bit;
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        MOV	A,#0x2
        MOVX	@DPTR,A
//  382 	SendDataAddr.endPoint = SAMPLEAPP_ENDPOINT;
        MOV	A,#0x3
        LCALL	?XSTACK_DISP0_8
        MOV	A,#0x14
        MOVX	@DPTR,A
//  383 	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
//  384         if ( AF_DataRequest( &SendDataAddr, &SampleApp_epDesc,
//  385                        SAMPLEAPP_PERIODIC_CLUSTERID,
//  386                        Leng,
//  387                        buf,
//  388                        &SampleApp_TransID,
//  389                        AF_DISCV_ROUTE,
//  390                        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
//  391 	{
//  392 		return 1;
        MOV	R1,#0x1
        SJMP	??SendData_1
//  393 	}
//  394 	else
//  395 	{
//  396 		return 0;// Error occurred in request to send.
??SendData_0:
        MOV	R1,#0x0
??SendData_1:
        MOV	A,#0x4
        LJMP	?Subroutine1 & 0xFFFF
        CFI EndBlock cfiBlock3
//  397 	}
//  398 }
//  399 
//  400 /*********************************************************************
//  401  * @fn      SampleApp_MessageMSGCB
//  402  *
//  403  * @brief   

⌨️ 快捷键说明

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