📄 sampleapp.lst
字号:
217 *
218 * @brief Generic Application Task event processor. This function
219 * is called to process all events for the task. Events
220 * include timers, messages and any other user defined events.
221 *
222 * @param task_id - The OSAL assigned task ID.
223 * @param events - events to process. This is a bit map and can
224 * contain more than one event.
225 *
226 * @return none
227 */
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
228 byte mubiaoIEEE[8];
\ mubiaoIEEE:
\ 000000 DS 8
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
229 uint16 rspaddr;
\ rspaddr:
\ 000000 DS 2
\ In segment BANKED_CODE, align 1, keep-with-next
230 uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )
\ SampleApp_ProcessEvent:
231 {
\ 000000 74F4 MOV A,#-0xc
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 12
\ 000005 ; Auto size: 0
\ 000005 EA MOV A,R2
\ 000006 FE MOV R6,A
\ 000007 EB MOV A,R3
\ 000008 FF MOV R7,A
232 afIncomingMSGPacket_t *MSGpkt;
233
234 if ( events & SYS_EVENT_MSG )
\ 000009 7480 MOV A,#-0x80
\ 00000B 5F ANL A,R7
\ 00000C F9 MOV R1,A
\ 00000D E4 CLR A
\ 00000E 7001 JNZ ??SampleApp_ProcessEvent_0
\ 000010 E9 MOV A,R1
\ ??SampleApp_ProcessEvent_0:
\ 000011 7003 JNZ $+5
\ 000013 02.... LJMP ??SampleApp_ProcessEvent_1 & 0xFFFF
235 {
236 MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
\ 000016 ; Setup parameters for call to function osal_msg_receive
\ 000016 8039 SJMP ??SampleApp_ProcessEvent_2
237 while ( MSGpkt )
238 {
239 switch ( MSGpkt->hdr.event )
240 {
241 // Received when a key is pressed
242 case KEY_CHANGE:
243 SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
244 break;
245
246 // Received when a messages is received (OTA) for this endpoint
247 case AF_INCOMING_MSG_CMD:
248 //SampleApp_MessageMSGCB( MSGpkt );
249 P1_1=~P1_1;
250 break;
251
252 // Received whenever the device changes state in the network
253 case ZDO_STATE_CHANGE:
254 SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
255 if (SampleApp_NwkState == DEV_ZB_COORD)
256 {
257 mubiaoIEEE[0]=0xa7;
258 for(byte i=1;i<8;i++)
259 {
260 mubiaoIEEE[i]=0xff;
261 }
262 ZDP_NwkAddrReq(mubiaoIEEE,1,1,0);
263 }
264 /*
265 SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
266 if ( (SampleApp_NwkState == DEV_ZB_COORD)
267 // || (SampleApp_NwkState == DEV_ROUTER)
268 // || (SampleApp_NwkState == DEV_END_DEVICE)
269 )
270 {
271 // Start sending the periodic message in a regular interval.
272 osal_start_timerEx( SampleApp_TaskID,
273 SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
274 SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );
275
276 }
277 */
278 break;
279 case ZDO_NWK_ADDR_RESP:
280
281
282 SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
\ ??SampleApp_ProcessEvent_3:
\ 000018 7402 MOV A,#0x2
\ 00001A 90.... MOV DPTR,#(SampleApp_Periodic_DstAddr + 2)
\ 00001D F0 MOVX @DPTR,A
283 SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
\ 00001E 7414 MOV A,#0x14
\ 000020 90.... MOV DPTR,#(SampleApp_Periodic_DstAddr + 3)
\ 000023 F0 MOVX @DPTR,A
284 SampleApp_Periodic_DstAddr.addr.shortAddr = rspaddr;
\ 000024 90.... MOV DPTR,#rspaddr
\ 000027 E0 MOVX A,@DPTR
\ 000028 F8 MOV R0,A
\ 000029 A3 INC DPTR
\ 00002A E0 MOVX A,@DPTR
\ 00002B F9 MOV R1,A
\ 00002C 90.... MOV DPTR,#SampleApp_Periodic_DstAddr
\ 00002F E8 MOV A,R0
\ 000030 F0 MOVX @DPTR,A
\ 000031 A3 INC DPTR
\ 000032 E9 MOV A,R1
\ 000033 F0 MOVX @DPTR,A
285 osal_set_event(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
\ 000034 ; Setup parameters for call to function osal_set_event
\ 000034 7A01 MOV R2,#0x1
\ 000036 7B00 MOV R3,#0x0
\ 000038 90.... MOV DPTR,#SampleApp_TaskID
\ 00003B E0 MOVX A,@DPTR
\ 00003C F9 MOV R1,A
\ 00003D 90.... MOV DPTR,#(osal_set_event & 0xffff)
\ 000040 74.. MOV A,#((osal_set_event >> 16) & 0xff)
\ ??SampleApp_ProcessEvent_4:
\ 000042 12.... LCALL ?BCALL ; Banked call to: DPTR()
286 break;
287 default:
288 break;
289 }
290
291 // Release the memory
292 osal_msg_deallocate( (uint8 *)MSGpkt );
\ ??SampleApp_ProcessEvent_5:
\ 000045 ; Setup parameters for call to function osal_msg_deallocate
\ 000045 AA.. MOV R2,?V0 + 0
\ 000047 AB.. MOV R3,?V0 + 1
\ 000049 90.... MOV DPTR,#(osal_msg_deallocate & 0xffff)
\ 00004C 74.. MOV A,#((osal_msg_deallocate >> 16) & 0xff)
\ 00004E 12.... LCALL ?BCALL ; Banked call to: DPTR()
293
294 // Next - if one is available
295 MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
\ 000051 ; Setup parameters for call to function osal_msg_receive
\ ??SampleApp_ProcessEvent_2:
\ 000051 90.... MOV DPTR,#SampleApp_TaskID
\ 000054 E0 MOVX A,@DPTR
\ 000055 F9 MOV R1,A
\ 000056 90.... MOV DPTR,#(osal_msg_receive & 0xffff)
\ 000059 74.. MOV A,#((osal_msg_receive >> 16) & 0xff)
\ 00005B 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00005E 8A.. MOV ?V0 + 0,R2
\ 000060 8B.. MOV ?V0 + 1,R3
\ 000062 E5.. MOV A,?V0 + 0
\ 000064 7002 JNZ ??SampleApp_ProcessEvent_6
\ 000066 E5.. MOV A,?V0 + 1
\ ??SampleApp_ProcessEvent_6:
\ 000068 607E JZ ??SampleApp_ProcessEvent_7
\ 00006A 85..82 MOV DPL,?V0 + 0
\ 00006D 85..83 MOV DPH,?V0 + 1
\ 000070 E0 MOVX A,@DPTR
\ 000071 12.... LCALL ?UC_SWITCH_SPARSE
\ `?<Jumptable for SampleApp_ProcessEvent>_0`:
\ 000074 00 DB 0
\ 000075 04 DB 4
\ 000076 1A DB 26
\ 000077 .... DW ??SampleApp_ProcessEvent_8
\ 000079 C0 DB 192
\ 00007A .... DW ??SampleApp_ProcessEvent_9
\ 00007C D1 DB 209
\ 00007D .... DW ??SampleApp_ProcessEvent_10
\ 00007F D3 DB 211
\ 000080 .... DW ??SampleApp_ProcessEvent_3
\ 000082 .... DW ??SampleApp_ProcessEvent_5
\ ??SampleApp_ProcessEvent_9:
\ 000084 ; Setup parameters for call to function SampleApp_HandleKeys
\ 000084 85..82 MOV DPL,?V0 + 0
\ 000087 85..83 MOV DPH,?V0 + 1
\ 00008A A3 INC DPTR
\ 00008B A3 INC DPTR
\ 00008C A3 INC DPTR
\ 00008D E0 MOVX A,@DPTR
\ 00008E FA MOV R2,A
\ 00008F 85..82 MOV DPL,?V0 + 0
\ 000092 85..83 MOV DPH,?V0 + 1
\ 000095 A3 INC DPTR
\ 000096 A3 INC DPTR
\ 000097 E0 MOVX A,@DPTR
\ 000098 F9 MOV R1,A
\ 000099 90.... MOV DPTR,#(SampleApp_HandleKeys & 0xffff)
\ 00009C 74.. MOV A,#((SampleApp_HandleKeys >> 16) & 0xff)
\ 00009E 80A2 SJMP ??SampleApp_ProcessEvent_4
\ ??SampleApp_ProcessEvent_8:
\ 0000A0 A291 MOV C,0x90.1
\ 0000A2 B3 CPL C
\ 0000A3 9291 MOV 0x90.1,C
\ 0000A5 809E SJMP ??SampleApp_ProcessEvent_5
\ ??SampleApp_ProcessEvent_10:
\ 0000A7 85..82 MOV DPL,?V0 + 0
\ 0000AA 85..83 MOV DPH,?V0 + 1
\ 0000AD A3 INC DPTR
\ 0000AE E0 MOVX A,@DPTR
\ 0000AF 90.... MOV DPTR,#SampleApp_NwkState
\ 0000B2 F0 MOVX @DPTR,A
\ 0000B3 6409 XRL A,#0x9
\ 0000B5 708E JNZ ??SampleApp_ProcessEvent_5
\ 0000B7 74A7 MOV A,#-0x59
\ 0000B9 90.... MOV DPTR,#mubiaoIEEE
\ 0000BC F0 MOVX @DPTR,A
\ 0000BD 7A01 MOV R2,#0x1
\ ??SampleApp_ProcessEvent_11:
\ 0000BF 8A.. MOV ?V0 + 2,R2
\ 0000C1 E5.. MOV A,?V0 + 2
\ 0000C3 24.. ADD A,#(mubiaoIEEE & 0xff)
\ 0000C5 F582 MOV DPL,A
\ 0000C7 E4 CLR A
\ 0000C8 34.. ADDC A,#((mubiaoIEEE >> 8) & 0xff)
\ 0000CA F583 MOV DPH,A
\ 0000CC 74FF MOV A,#-0x1
\ 0000CE F0 MOVX @DPTR,A
\ 0000CF 0A INC R2
\ 0000D0 EA MOV A,R2
\ 0000D1 C3 CLR C
\ 0000D2 9408 SUBB A,#0x8
\ 0000D4 40E9 JC ??SampleApp_ProcessEvent_11
\ 0000D6 ; Setup parameters for call to function ZDP_NwkAddrReq
\ 0000D6 7D00 MOV R5,#0x0
\ 0000D8 7C01 MOV R4,#0x1
\ 0000DA 7901 MOV R1,#0x1
\ 0000DC 7A.. MOV R2,#(mubiaoIEEE & 0xff)
\ 0000DE 7B.. MOV R3,#((mubiaoIEEE >> 8) & 0xff)
\ 0000E0 90.... MOV DPTR,#(ZDP_NwkAddrReq & 0xffff)
\ 0000E3 74.. MOV A,#((ZDP_NwkAddrReq >> 16) & 0xff)
\ 0000E5 02.... LJMP ??SampleApp_ProcessEvent_4 & 0xFFFF
296 }
297
298 // return unprocessed events
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -