📄 sampleapp.lst
字号:
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 + -