📄 sampleapp.s51
字号:
MOV A,#((SampleApp_HandleKeys >> 16) & 0xff)
SJMP ??SampleApp_ProcessEvent_4
??SampleApp_ProcessEvent_8:
MOV C,0x90.1
CPL C
MOV 0x90.1,C
SJMP ??SampleApp_ProcessEvent_5
??SampleApp_ProcessEvent_10:
MOV DPL,?V0 + 0
MOV DPH,?V0 + 1
INC DPTR
MOVX A,@DPTR
MOV DPTR,#SampleApp_NwkState
MOVX @DPTR,A
XRL A,#0x9
JNZ ??SampleApp_ProcessEvent_5
MOV A,#-0x59
MOV DPTR,#mubiaoIEEE
MOVX @DPTR,A
MOV R2,#0x1
??SampleApp_ProcessEvent_11:
MOV ?V0 + 2,R2
MOV A,?V0 + 2
ADD A,#(mubiaoIEEE & 0xff)
MOV DPL,A
CLR A
ADDC A,#((mubiaoIEEE >> 8) & 0xff)
MOV DPH,A
MOV A,#-0x1
MOVX @DPTR,A
INC R2
MOV A,R2
CLR C
SUBB A,#0x8
JC ??SampleApp_ProcessEvent_11
; Setup parameters for call to function ZDP_NwkAddrReq
MOV R5,#0x0
MOV R4,#0x1
MOV R1,#0x1
MOV R2,#(mubiaoIEEE & 0xff)
MOV R3,#((mubiaoIEEE >> 8) & 0xff)
MOV DPTR,#(ZDP_NwkAddrReq & 0xffff)
MOV A,#((ZDP_NwkAddrReq >> 16) & 0xff)
LJMP ??SampleApp_ProcessEvent_4 & 0xFFFF
// 296 }
// 297
// 298 // return unprocessed events
// 299 return (events ^ SYS_EVENT_MSG);
??SampleApp_ProcessEvent_7:
MOV A,R6
MOV R2,A
MOV A,#-0x80
XRL A,R7
??SampleApp_ProcessEvent_12:
MOV R3,A
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:
MOV A,R6
MOV C,0xE0 /* A */.0
JNC ??SampleApp_ProcessEvent_14
// 305 {
// 306 // Send the periodic message
// 307 // SampleApp_SendPeriodicMessage();
// 308
// 309 P1_0=~P1_0;
MOV C,0x90.0
CPL C
MOV 0x90.0,C
// 310 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()
// 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)) );
; 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,#-0x18
ADD A,R0
MOV R4,A
MOV A,#0x3
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()
// 314
// 315 // return unprocessed events
// 316 return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
MOV A,#0x1
XRL A,R6
MOV R2,A
MOV A,R7
SJMP ??SampleApp_ProcessEvent_12
// 317 }
// 318
// 319 // Discard unknown events
// 320 return 0;
??SampleApp_ProcessEvent_14:
MOV R2,#0x0
MOV R3,#0x0
??SampleApp_ProcessEvent_13:
MOV R7,#0x4
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock1
// 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 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 338 void SampleApp_HandleKeys( uint8 shift, uint8 keys )
SampleApp_HandleKeys:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function SampleApp_HandleKeys
// 339 {
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
// 340 if ( keys & HAL_KEY_SW_1 )
MOV C,0xE0 /* A */.0
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 );
; 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()
// 347 }
// 348
// 349 if ( keys & HAL_KEY_SW_2 )
??SampleApp_HandleKeys_0:
MOV A,R6
MOV C,0xE0 /* A */.1
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 )
; 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
// 359 {
// 360 // Remove from the group
// 361 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
// 362 }
// 363 else
// 364 {
// 365 // Add to the flash group
// 366 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()
// 367 }
// 368 }
// 369 }
??SampleApp_HandleKeys_1:
SJMP ??Subroutine0_0
CFI EndBlock cfiBlock2
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
CFI Block cfiBlock3 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 13)
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
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 Invalid
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 10)
CFI Valid
??Subroutine0_0:
MOV R7,#0x2
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock3
// 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 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 386 void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
SampleApp_MessageMSGCB:
CFI Block cfiBlock4 Using cfiCommon0
CFI Function SampleApp_MessageMSGCB
// 387 {
FUNCALL SampleApp_MessageMSGCB, HalLedBlink
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
// 388 uint16 flashTime;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -