📄 communication_lib.lis
字号:
.module Communication_LIB.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\Communication_LIB.c
0000 .dbfunc e MSG_Map_LocateModuleShell_INIT _MSG_Map_LocateModuleShell_INIT fV
0000 .dbstruct 0 3 MsgMapItem
0000 .dbfield 0 cCMD c
0000 .dbfield 1 pMsgFunc pfc
0000 .dbend
0000 .dbstruct 0 3 MsgMap
0000 .dbfield 0 cItemCount c
0000 .dbfield 1 pMsgItems pS[MsgMapItem]
0000 .dbend
0000 ; pMsgMap -> R18,R19
0000 ; Reg2 -> R10,R11
0000 ; Reg14 -> R16,R17
0000 ; n3 -> R16
0000 ; n1 -> R16
.even
0000 _MSG_Map_LocateModuleShell_INIT::
0000 AA92 st -y,R10
0002 BA92 st -y,R11
0004 .dbline -1
0004 .dbline 79
0004 ; /***********************************************************
0004 ; * 函数库说明:模块通讯函数库 *
0004 ; * 版本: *
0004 ; * 作者: *
0004 ; * 创建日期: *
0004 ; * -------------------------------------------------------- *
0004 ; * [硬件说明] *
0004 ; * 处理器: *
0004 ; * 系统时钟: *
0004 ; * -------------------------------------------------------- *
0004 ; * [支 持 库] *
0004 ; * 库名称: *
0004 ; * 需要版本: *
0004 ; * 支持库说明: *
0004 ; * -------------------------------------------------------- *
0004 ; * [版本更新] *
0004 ; * 修改: *
0004 ; * 修改日期: *
0004 ; * 版本: *
0004 ; * -------------------------------------------------------- *
0004 ; * [版本历史] *
0004 ; * -------------------------------------------------------- *
0004 ; * [使用说明] *
0004 ; ***********************************************************/
0004 ;
0004 ; /********************
0004 ; * 头 文 件 配 置 区 *
0004 ; ********************/
0004 ; # include "RD_MacroAndConst.h"
0004 ; # include "LIB_Config.h"
0004 ; # include "PF_Config.h"
0004 ; # include "RD_ADT_Queue.h"
0004 ; # include "RD_ADT_MSGMap.h"
0004 ; # include "RD_UseSerialFrame_PROC.h"
0004 ; # include "Communication_LIB.h"
0004 ; # include "math.h"
0004 ;
0004 ; /********************
0004 ; * 系 统 宏 定 义 *
0004 ; ********************/
0004 ;
0004 ; /*------------------*
0004 ; * 常 数 宏 定 义 *
0004 ; *------------------*/
0004 ;
0004 ;
0004 ; /*------------------*
0004 ; * 动 作 宏 定 义 *
0004 ; *------------------*/
0004 ;
0004 ; /********************
0004 ; * 模块结构体定义区 *
0004 ; ********************/
0004 ;
0004 ; /********************
0004 ; * 函 数 声 明 区 *
0004 ; ********************/
0004 ; void Communication_INIT(void);
0004 ; BOOL PROC_Shell(void);
0004 ; BOOL Send_MSG(uint8 cCMD,uint8 *pData,uint8 Length);
0004 ; /********************
0004 ; * 模块函数声明区 *
0004 ; ********************/
0004 ; static BOOL MSGMap_Set(MSG_ITEM *pMsgItem);
0004 ; static BOOL MSGMap_Acknowledge(MSG_ITEM *pMsgItem);
0004 ; static BOOL MSGMap_OptionSet(MSG_ITEM *pMsgItem);
0004 ; /********************
0004 ; * 模块变量声明区 *
0004 ; ********************/
0004 ;
0004 ; /********************
0004 ; * 全局变量声明区 *
0004 ; ********************/
0004 ;
0004 ;
0004 ; /********************
0004 ; * 自定义数据类型区 *
0004 ; ********************/
0004 ; START_DEFINE_MSG_MAP(LocateModuleShell,2)
0004 .dbline 79
0004 .dbline 79
0004 20E0 ldi R18,<_MSGMapLocateModuleShell
0006 30E0 ldi R19,>_MSGMapLocateModuleShell
0008 .dbline 79
0008 80E0 ldi R24,<_MSGMapLocateModuleShellItemArray
000A 90E0 ldi R25,>_MSGMapLocateModuleShellItemArray
000C F901 movw R30,R18
000E 9283 std z+2,R25
0010 8183 std z+1,R24
0012 .dbline 79
0012 82E0 ldi R24,2
0014 8083 std z+0,R24
0016 .dbline 79
0016 0027 clr R16
0018 14C0 rjmp L5
001A L2:
001A .dbline 79
001A .dbline 79
001A 83E0 ldi R24,3
001C 809F mul R24,R16
001E 5001 movw R10,R0
0020 80E0 ldi R24,<_MSGMapLocateModuleShellItemArray
0022 90E0 ldi R25,>_MSGMapLocateModuleShellItemArray
0024 F501 movw R30,R10
0026 E80F add R30,R24
0028 F91F adc R31,R25
002A 2224 clr R2
002C 2082 std z+0,R2
002E .dbline 79
002E 80E0 ldi R24,<_MSGMapLocateModuleShellItemArray+1
0030 90E0 ldi R25,>_MSGMapLocateModuleShellItemArray+1
0032 F501 movw R30,R10
0034 E80F add R30,R24
0036 F91F adc R31,R25
0038 80E0 ldi R24,<PL_MSG_NULL_PROC
003A 90E0 ldi R25,>PL_MSG_NULL_PROC
003C 9183 std z+1,R25
003E 8083 std z+0,R24
0040 .dbline 79
0040 L3:
0040 .dbline 79
0040 0395 inc R16
0042 L5:
0042 .dbline 79
0042 0230 cpi R16,2
0044 50F3 brlo L2
0046 X0:
0046 .dbline 79
0046 0027 clr R16
0048 .dbline 80
0048 ; ADD_NEW_MSG_MAP_ITEM(COM_CMD_SET,MSGMap_Set)
0048 F901 movw R30,R18
004A 2080 ldd R2,z+0
004C 0215 cp R16,R2
004E A0F4 brsh L7
0050 X1:
0050 .dbline 80
0050 .dbline 80
0050 4424 clr R4
0052 5524 clr R5
0054 2180 ldd R2,z+1
0056 3280 ldd R3,z+2
0058 F201 movw R30,R4
005A E20D add R30,R2
005C F31D adc R31,R3
005E 81EA ldi R24,161
0060 8083 std z+0,R24
0062 .dbline 80
0062 F901 movw R30,R18
0064 2180 ldd R2,z+1
0066 3280 ldd R3,z+2
0068 F201 movw R30,R4
006A E20D add R30,R2
006C F31D adc R31,R3
006E 80E0 ldi R24,<PL_MSGMap_Set
0070 90E0 ldi R25,>PL_MSGMap_Set
0072 9283 std z+2,R25
0074 8183 std z+1,R24
0076 .dbline 80
0076 01E0 ldi R16,1
0078 .dbline 80
0078 L7:
0078 .dbline 81
0078 ; ADD_NEW_MSG_MAP_ITEM(COM_CMD_ACK,MSGMap_Acknowledge)
0078 F901 movw R30,R18
007A 2080 ldd R2,z+0
007C 0215 cp R16,R2
007E A0F4 brsh L9
0080 X2:
0080 .dbline 81
0080 .dbline 81
0080 83E0 ldi R24,3
0082 809F mul R24,R16
0084 8001 movw R16,R0
0086 2180 ldd R2,z+1
0088 3280 ldd R3,z+2
008A F801 movw R30,R16
008C E20D add R30,R2
008E F31D adc R31,R3
0090 8CEA ldi R24,172
0092 8083 std z+0,R24
0094 .dbline 81
0094 F901 movw R30,R18
0096 2180 ldd R2,z+1
0098 3280 ldd R3,z+2
009A F801 movw R30,R16
009C E20D add R30,R2
009E F31D adc R31,R3
00A0 80E0 ldi R24,<PL_MSGMap_Acknowledge
00A2 90E0 ldi R25,>PL_MSGMap_Acknowledge
00A4 9283 std z+2,R25
00A6 8183 std z+1,R24
00A8 .dbline 81
00A8 .dbline 81
00A8 L9:
00A8 .dbline -2
00A8 L1:
00A8 .dbline 0 ; func end
00A8 B990 ld R11,y+
00AA A990 ld R10,y+
00AC 0895 ret
00AE .dbsym r pMsgMap 18 pS[MsgMap]
00AE .dbsym r Reg2 10 S
00AE .dbsym r Reg14 16 S
00AE .dbsym r n3 16 c
00AE .dbsym r n1 16 c
00AE .dbend
00AE .dbfunc e SFP_LocateModuleShell_INIT _SFP_LocateModuleShell_INIT fV
00AE .dbstruct 0 18 AbstructDataTypeQueue
00AE .dbfield 0 pBuffer pc
00AE .dbfield 2 nSize i
00AE .dbfield 4 nHead i
00AE .dbfield 6 nTail i
00AE .dbfield 8 nCount i
00AE .dbfield 10 fnAddToBuffer pfc
00AE .dbfield 12 fnGetFromBuffer pfc
00AE .dbfield 14 fnCheckEmpty pfc
00AE .dbfield 16 fnPeekFromBuffer pfc
00AE .dbend
00AE .dbstruct 0 4 MsgItem
00AE .dbfield 0 cCMD c
00AE .dbfield 1 cDataLength c
00AE .dbfield 2 pData pc
00AE .dbend
00AE .dbstruct 0 37 SerialFrameProcess
00AE .dbfield 0 FrameBuffer S[AbstructDataTypeQueue]
00AE .dbfield 18 pMsgMap pS[MsgMap]
00AE .dbfield 20 MsgItem S[MsgItem]
00AE .dbfield 24 cHeadByte c
00AE .dbfield 25 cEndByte c
00AE .dbfield 26 cFixLength c
00AE .dbfield 27 cAddress c
00AE .dbfield 28 InputDataFunc pfc
00AE .dbfield 30 OutputDataFunc pfc
00AE .dbfield 32 PeekDataFunc pfc
00AE .dbfield 34 cActionFlag c
00AE .dbfield 35 cXORCheck c
00AE .dbfield 36 cFrameSize c
00AE .dbend
00AE ; pSFP -> R16,R17
.even
00AE _SFP_LocateModuleShell_INIT::
00AE .dbline -1
00AE .dbline 84
00AE ; END_DEFINE_MSG_MAP
00AE ;
00AE ; START_DEFINE_SERIAL_FRAME_PROCESS(LocateModuleShell,32,MSG_MAP(LocateModuleShell))
00AE .dbline 84
00AE 00E0 ldi R16,<_SFPLocateModuleShell
00B0 10E0 ldi R17,>_SFPLocateModuleShell
00B2 .dbline 84
00B2 80E0 ldi R24,<_MSGMapLocateModuleShell
00B4 90E0 ldi R25,>_MSGMapLocateModuleShell
00B6 F801 movw R30,R16
00B8 938B std z+19,R25
00BA 828B std z+18,R24
00BC .dbline 84
00BC .dbline 84
00BC 80E0 ldi R24,<_SFPLocateModuleShellBuffer
00BE 90E0 ldi R25,>_SFPLocateModuleShellBuffer
00C0 90934100 sts _SFPLocateModuleShell+1,R25
00C4 80934000 sts _SFPLocateModuleShell,R24
00C8 .dbline 84
00C8 80E2 ldi R24,32
00CA 90E0 ldi R25,0
00CC 90934300 sts _SFPLocateModuleShell+2+1,R25
00D0 80934200 sts _SFPLocateModuleShell+2,R24
00D4 .dbline 84
00D4 2224 clr R2
00D6 3324 clr R3
00D8 30924500 sts _SFPLocateModuleShell+4+1,R3
00DC 20924400 sts _SFPLocateModuleShell+4,R2
00E0 .dbline 84
00E0 30924700 sts _SFPLocateModuleShell+6+1,R3
00E4 20924600 sts _SFPLocateModuleShell+6,R2
00E8 .dbline 84
00E8 30924900 sts _SFPLocateModuleShell+8+1,R3
00EC 20924800 sts _SFPLocateModuleShell+8,R2
00F0 .dbline 84
00F0 80E0 ldi R24,<PL_ADT_Queue_Add_To_Buffer
00F2 90E0 ldi R25,>PL_ADT_Queue_Add_To_Buffer
00F4 90934B00 sts _SFPLocateModuleShell+10+1,R25
00F8 80934A00 sts _SFPLocateModuleShell+10,R24
00FC .dbline 84
00FC 80E0 ldi R24,<PL_ADT_Queue_Get_From_Buffer
00FE 90E0 ldi R25,>PL_ADT_Queue_Get_From_Buffer
0100 90934D00 sts _SFPLocateModuleShell+12+1,R25
0104 80934C00 sts _SFPLocateModuleShell+12,R24
0108 .dbline 84
0108 80E0 ldi R24,<PL_ADT_Queue_Check_Empty
010A 90E0 ldi R25,>PL_ADT_Queue_Check_Empty
010C 90934F00 sts _SFPLocateModuleShell+14+1,R25
0110 80934E00 sts _SFPLocateModuleShell+14,R24
0114 .dbline 84
0114 80E0 ldi R24,<PL_ADT_Queue_Peek_From_Buffer
0116 90E0 ldi R25,>PL_ADT_Queue_Peek_From_Buffer
0118 90935100 sts _SFPLocateModuleShell+16+1,R25
011C 80935000 sts _SFPLocateModuleShell+16,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -