📄 ci_config.lis
字号:
.module CI_Config.c
.area text(rom, con, rel)
0000 .dbfile O:\2007全国电子设计大赛\键盘显示模块\CI_Config.c
0000 .dbfunc e MSG_Map_CommunicationInterface_INIT _MSG_Map_CommunicationInterface_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 -> R16,R17
0000 ; Reg2 -> R10,R11
0000 ; n1 -> R18
.even
0000 _MSG_Map_CommunicationInterface_INIT::
0000 AA92 st -y,R10
0002 BA92 st -y,R11
0004 .dbline -1
0004 .dbline 77
0004 ; /***********************************************************
0004 ; * 函数库说明:指令解析系统函数库 *
0004 ; * 版本: v0.30 *
0004 ; * 作者: 王卓然 *
0004 ; * 创建日期: 2007年9月02日 *
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 "CI_Config.h"
0004 ; # include "LIB_Config.h"
0004 ; # include "RD_ADT_QUEUE.h"
0004 ; # include "RD_ADT_MSGMap.h"
0004 ; # include "RD_UseSerialFrame_PROC.h"
0004 ; # include "CI_MSGMap.h"
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 ; void Communication_INIT(void);
0004 ; BOOL Send_MSG(uint8 cCMD,uint8 *pData,uint8 Length);
0004 ; BOOL Serial_Frame_Process_Refresh(void);
0004 ;
0004 ; /********************
0004 ; * 全局函数声明区 *
0004 ; ********************/
0004 ;
0004 ; /********************
0004 ; * 模块变量声明区 *
0004 ; ********************/
0004 ;
0004 ; /********************
0004 ; * 全局变量声明区 *
0004 ; ********************/
0004 ;
0004 ; /********************
0004 ; * 自定义数据结构区 *
0004 ; ********************/
0004 ;
0004 ; //机器人平台
0004 ; START_DEFINE_MSG_MAP(CommunicationInterface,4)
0004 .dbline 77
0004 .dbline 77
0004 00E0 ldi R16,<_MSGMapCommunicationInterface
0006 10E0 ldi R17,>_MSGMapCommunicationInterface
0008 .dbline 77
0008 80E0 ldi R24,<_MSGMapCommunicationInterfaceItemArray
000A 90E0 ldi R25,>_MSGMapCommunicationInterfaceItemArray
000C F801 movw R30,R16
000E 9283 std z+2,R25
0010 8183 std z+1,R24
0012 .dbline 77
0012 84E0 ldi R24,4
0014 8083 std z+0,R24
0016 .dbline 77
0016 2227 clr R18
0018 14C0 xjmp L5
001A L2:
001A .dbline 77
001A .dbline 77
001A 83E0 ldi R24,3
001C 829F mul R24,R18
001E 5001 movw R10,R0
0020 80E0 ldi R24,<_MSGMapCommunicationInterfaceItemArray
0022 90E0 ldi R25,>_MSGMapCommunicationInterfaceItemArray
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 77
002E 80E0 ldi R24,<_MSGMapCommunicationInterfaceItemArray+1
0030 90E0 ldi R25,>_MSGMapCommunicationInterfaceItemArray+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 77
0040 L3:
0040 .dbline 77
0040 2395 inc R18
0042 L5:
0042 .dbline 77
0042 2430 cpi R18,4
0044 50F3 brlo L2
0046 X0:
0046 .dbline 77
0046 .dbline 78
0046 ; ADD_NEW_MSG_MAP_ITEM(CMD_ACK,PROC_Acknowledge)
0046 F801 movw R30,R16
0048 2080 ldd R2,z+0
004A 3324 clr R3
004C 3214 cp R3,R2
004E 98F4 brsh L7
0050 X1:
0050 .dbline 78
0050 .dbline 78
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 8CEA ldi R24,172
0060 8083 std z+0,R24
0062 .dbline 78
0062 F801 movw R30,R16
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_PROC_Acknowledge
0070 90E0 ldi R25,>PL_PROC_Acknowledge
0072 9283 std z+2,R25
0074 8183 std z+1,R24
0076 .dbline 78
0076 .dbline 78
0076 L7:
0076 .dbline -2
0076 L1:
0076 .dbline 0 ; func end
0076 B990 ld R11,y+
0078 A990 ld R10,y+
007A 0895 ret
007C .dbsym r pMsgMap 16 pS[MsgMap]
007C .dbsym r Reg2 10 S
007C .dbsym r n1 18 c
007C .dbend
007C .dbfunc e SFP_CommunicationShell_INIT _SFP_CommunicationShell_INIT fV
007C .dbstruct 0 18 AbstructDataTypeQueue
007C .dbfield 0 pBuffer pc
007C .dbfield 2 nSize i
007C .dbfield 4 nHead i
007C .dbfield 6 nTail i
007C .dbfield 8 nCount i
007C .dbfield 10 fnAddToBuffer pfc
007C .dbfield 12 fnGetFromBuffer pfc
007C .dbfield 14 fnCheckEmpty pfc
007C .dbfield 16 fnPeekFromBuffer pfc
007C .dbend
007C .dbstruct 0 4 MsgItem
007C .dbfield 0 cCMD c
007C .dbfield 1 cDataLength c
007C .dbfield 2 pData pc
007C .dbend
007C .dbstruct 0 37 SerialFrameProcess
007C .dbfield 0 FrameBuffer S[AbstructDataTypeQueue]
007C .dbfield 18 pMsgMap pS[MsgMap]
007C .dbfield 20 MsgItem S[MsgItem]
007C .dbfield 24 cHeadByte c
007C .dbfield 25 cEndByte c
007C .dbfield 26 cFixLength c
007C .dbfield 27 cAddress c
007C .dbfield 28 InputDataFunc pfc
007C .dbfield 30 OutputDataFunc pfc
007C .dbfield 32 PeekDataFunc pfc
007C .dbfield 34 cActionFlag c
007C .dbfield 35 cXORCheck c
007C .dbfield 36 cFrameSize c
007C .dbend
007C ; pSFP -> R16,R17
.even
007C _SFP_CommunicationShell_INIT::
007C .dbline -1
007C .dbline 81
007C ; END_DEFINE_MSG_MAP
007C ;
007C ; START_DEFINE_SERIAL_FRAME_PROCESS(CommunicationShell,16,MSG_MAP(CommunicationInterface))
007C .dbline 81
007C 00E0 ldi R16,<_SFPCommunicationShell
007E 10E0 ldi R17,>_SFPCommunicationShell
0080 .dbline 81
0080 80E0 ldi R24,<_MSGMapCommunicationInterface
0082 90E0 ldi R25,>_MSGMapCommunicationInterface
0084 F801 movw R30,R16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -