📄 sensorcomm.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 11/Dec/2008 13:41:50 #
# Copyright 2004-2006 IAR Systems. All rights reserved. #
# #
# Core = plain #
# Code model = near #
# Data model = large #
# Calling convention = xdata reentrant #
# Constant location = data #
# Dptr setup = 1,16 #
# Source file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\src\SensorComm.c #
# Command line = -lC D:\zigbee\演示程序\简化协议的无线收发演示\dem #
# o_pro\Debug\List\ -lA D:\zigbee\演示程序\简化协议 #
# 的无线收发演示\demo_pro\Debug\List\ -o #
# D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\Obj\ -e -z2 --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --debug #
# --core=plain --dptr=16,1 --data_model=large #
# --code_model=near --calling_convention=xdata_reen #
# trant --place_constants=data --nr_virtual_regs 8 #
# -I "C:\Program Files\IAR Systems\Embedded #
# Workbench 4.05 Evaluation version\8051\INC\" -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.05 Evaluation version\8051\INC\CLIB\" #
# D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\src\SensorComm.c #
# List file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\List\SensorComm.lst #
# Object file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\Obj\SensorComm.r51 #
# #
# #
##############################################################################
D:\zigbee\演示程序\简化协议的无线收发演示\demo_pro\src\SensorComm.c
1
2
3 //功能:团长把数据上报给探头
4
5 #include "msstate_lrwpan.h"
6 #include "MAC.h"
7
8 #include "SensorComm.h"
9
10
11
12
\ In segment NEAR_CODE, align 1, keep-with-next
13 BYTE NeedRepDatToSensor(BYTE hiId,BYTE lowId)
\ NeedRepDatToSensor:
14 {
\ 000000 74F5 MOV A,#-0xb
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 11
\ 000005 ; Auto size: 0
\ 000005 89.. MOV ?V0 + 0,R1
\ 000007 8A.. MOV ?V0 + 1,R2
15 int i;
16 for(i=0;i<MAXREPRECNUM;i++)
\ 000009 7E00 MOV R6,#0x0
\ 00000B 7F00 MOV R7,#0x0
\ ??NeedRepDatToSensor_0:
\ 00000D C3 CLR C
\ 00000E EE MOV A,R6
\ 00000F 9404 SUBB A,#0x4
\ 000011 EF MOV A,R7
\ 000012 9400 SUBB A,#0x0
\ 000014 A2D2 MOV C,0xD0 /* PSW */.2
\ 000016 65D0 XRL A,PSW
\ 000018 33 RLC A
\ 000019 4003 JC $+5
\ 00001B 02.... LJMP ??NeedRepDatToSensor_1
17 {
18 if((RepDatToSensorRec[i].SensorId[0]==lowId)&&(RepDatToSensorRec[i].SensorId[1]==hiId))
\ 00001E EE MOV A,R6
\ 00001F F8 MOV R0,A
\ 000020 EF MOV A,R7
\ 000021 F9 MOV R1,A
\ 000022 E8 MOV A,R0
\ 000023 75F006 MOV B,#0x6
\ 000026 A4 MUL AB
\ 000027 C8 XCH A,R0
\ 000028 AAF0 MOV R2,B
\ 00002A 75F000 MOV B,#0x0
\ 00002D A4 MUL AB
\ 00002E 2A ADD A,R2
\ 00002F FA MOV R2,A
\ 000030 75F006 MOV B,#0x6
\ 000033 E9 MOV A,R1
\ 000034 A4 MUL AB
\ 000035 2A ADD A,R2
\ 000036 F9 MOV R1,A
\ 000037 E8 MOV A,R0
\ 000038 24.. ADD A,#(RepDatToSensorRec & 0xff)
\ 00003A F582 MOV DPL,A
\ 00003C E9 MOV A,R1
\ 00003D 34.. ADDC A,#((RepDatToSensorRec >> 8) & 0xff)
\ 00003F F583 MOV DPH,A
\ 000041 E0 MOVX A,@DPTR
\ 000042 65.. XRL A,?V0 + 1
\ 000044 7071 JNZ ??NeedRepDatToSensor_2
\ 000046 EE MOV A,R6
\ 000047 F8 MOV R0,A
\ 000048 EF MOV A,R7
\ 000049 F9 MOV R1,A
\ 00004A E8 MOV A,R0
\ 00004B 75F006 MOV B,#0x6
\ 00004E A4 MUL AB
\ 00004F C8 XCH A,R0
\ 000050 AAF0 MOV R2,B
\ 000052 75F000 MOV B,#0x0
\ 000055 A4 MUL AB
\ 000056 2A ADD A,R2
\ 000057 FA MOV R2,A
\ 000058 75F006 MOV B,#0x6
\ 00005B E9 MOV A,R1
\ 00005C A4 MUL AB
\ 00005D 2A ADD A,R2
\ 00005E F9 MOV R1,A
\ 00005F E8 MOV A,R0
\ 000060 24.. ADD A,#((RepDatToSensorRec + 1) & 0xff)
\ 000062 F582 MOV DPL,A
\ 000064 E9 MOV A,R1
\ 000065 34.. ADDC A,#(((RepDatToSensorRec + 1) >> 8) & 0xff)
\ 000067 F583 MOV DPH,A
\ 000069 E0 MOVX A,@DPTR
\ 00006A 65.. XRL A,?V0 + 0
\ 00006C 7049 JNZ ??NeedRepDatToSensor_2
19 if (TickGetDiff(TickGet(), RepDatToSensorRec[i].lastRepTime) <CAPTAIN_SENDDATATOSENSORTIME/20)//每个滴答50ms左右
\ 00006E ; Setup parameters for call to function TickGetDiff
\ 00006E EE MOV A,R6
\ 00006F F8 MOV R0,A
\ 000070 EF MOV A,R7
\ 000071 F9 MOV R1,A
\ 000072 E8 MOV A,R0
\ 000073 75F006 MOV B,#0x6
\ 000076 A4 MUL AB
\ 000077 C8 XCH A,R0
\ 000078 AAF0 MOV R2,B
\ 00007A 75F000 MOV B,#0x0
\ 00007D A4 MUL AB
\ 00007E 2A ADD A,R2
\ 00007F FA MOV R2,A
\ 000080 75F006 MOV B,#0x6
\ 000083 E9 MOV A,R1
\ 000084 A4 MUL AB
\ 000085 2A ADD A,R2
\ 000086 F9 MOV R1,A
\ 000087 E8 MOV A,R0
\ 000088 24.. ADD A,#((RepDatToSensorRec + 2) & 0xff)
\ 00008A F582 MOV DPL,A
\ 00008C E9 MOV A,R1
\ 00008D 34.. ADDC A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
\ 00008F F583 MOV DPH,A
\ 000091 12.... LCALL ?PUSH_XSTACK8_X_FOUR
\ 000094 ; Setup parameters for call to function halGetMACTimer
\ 000094 12.... LCALL halGetMACTimer
\ 000097 12.... LCALL TickGetDiff
\ 00009A 7404 MOV A,#0x4
\ 00009C 12.... LCALL ?DEALLOC_XSTACK8
\ 00009F 8A.. MOV ?V0 + 2,R2
\ 0000A1 8B.. MOV ?V0 + 3,R3
\ 0000A3 C3 CLR C
\ 0000A4 E5.. MOV A,?V0 + 2
\ 0000A6 9414 SUBB A,#0x14
\ 0000A8 E5.. MOV A,?V0 + 3
\ 0000AA 9400 SUBB A,#0x0
\ 0000AC A2D2 MOV C,0xD0 /* PSW */.2
\ 0000AE 65D0 XRL A,PSW
\ 0000B0 33 RLC A
\ 0000B1 5004 JNC ??NeedRepDatToSensor_2
20 return 0;
\ 0000B3 7900 MOV R1,#0x0
\ 0000B5 800D SJMP ??NeedRepDatToSensor_3
21 }
\ ??NeedRepDatToSensor_2:
\ 0000B7 EE MOV A,R6
\ 0000B8 2401 ADD A,#0x1
\ 0000BA FE MOV R6,A
\ 0000BB EF MOV A,R7
\ 0000BC 3400 ADDC A,#0x0
\ 0000BE FF MOV R7,A
\ 0000BF 02.... LJMP ??NeedRepDatToSensor_0
22 return 1;
\ ??NeedRepDatToSensor_1:
\ 0000C2 7901 MOV R1,#0x1
\ ??NeedRepDatToSensor_3:
\ 0000C4 7F04 MOV R7,#0x4
\ 0000C6 02.... LJMP ?FUNC_LEAVE_XDATA
23 }
24
\ In segment NEAR_CODE, align 1, keep-with-next
25 void UpdateRepDatToSensorRec(BYTE hiId,BYTE lowId)
\ UpdateRepDatToSensorRec:
26 {
\ 000000 74F1 MOV A,#-0xf
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 15
\ 000005 ; Auto size: 3
\ 000005 74FD MOV A,#-0x3
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A E9 MOV A,R1
\ 00000B C0E0 PUSH A
\ 00000D 7401 MOV A,#0x1
\ 00000F 12.... LCALL ?XSTACK_DISP0_8
\ 000012 D0E0 POP A
\ 000014 F0 MOVX @DPTR,A
\ 000015 EA MOV A,R2
\ 000016 C0E0 PUSH A
\ 000018 7402 MOV A,#0x2
\ 00001A 12.... LCALL ?XSTACK_DISP0_8
\ 00001D D0E0 POP A
\ 00001F F0 MOVX @DPTR,A
27 int i;
28 TICK maxTime=0;
\ 000020 90.... MOV DPTR,#__Constant_0
\ 000023 78.. MOV R0,#?V0 + 0
\ 000025 12.... LCALL ?L_MOV_X
\ 000028 85.... MOV ?V0 + 4,?V0 + 0
\ 00002B 85.... MOV ?V0 + 5,?V0 + 1
\ 00002E 85.... MOV ?V0 + 6,?V0 + 2
\ 000031 85.... MOV ?V0 + 7,?V0 + 3
29 BYTE iTmp=0;
\ 000034 7400 MOV A,#0x0
\ 000036 85..82 MOV DPL,?XSP + 0
\ 000039 85..83 MOV DPH,?XSP + 1
\ 00003C F0 MOVX @DPTR,A
30 for(i=0;i<MAXREPRECNUM;i++)
\ 00003D 7E00 MOV R6,#0x0
\ 00003F 7F00 MOV R7,#0x0
\ ??UpdateRepDatToSensorRec_0:
\ 000041 C3 CLR C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -