⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 model.lst

📁 移动机器人(小车)的物理坐标和逻辑坐标的转换源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
__text_start:
__start:
      79 EFCF      LDI	R28,0xFF
      7A E0D4      LDI	R29,4
      7B BFCD      OUT	0x3D,R28
      7C BFDE      OUT	0x3E,R29
      7D 50C0      SUBI	R28,0
      7E 40D1      SBCI	R29,1
      7F EA0A      LDI	R16,0xAA
      80 8308      STD	Y+0,R16
      81 2400      CLR	R0
      82 E5E6      LDI	R30,0x56
      83 E0F1      LDI	R31,1
      84 E012      LDI	R17,2
      85 33E0      CPI	R30,0x30
      86 07F1      CPC	R31,R17
      87 F011      BEQ	0x008A
      88 9201      ST	R0,Z+
      89 CFFB      RJMP	0x0085
      8A 8300      STD	Z+0,R16
      8B E9EC      LDI	R30,0x9C
      8C E0F0      LDI	R31,0
      8D E0A0      LDI	R26,0
      8E E0B1      LDI	R27,1
      8F E010      LDI	R17,0
      90 E000      LDI	R16,0
      91 BF0B      OUT	0x3B,R16
      92 3FE2      CPI	R30,0xF2
      93 07F1      CPC	R31,R17
      94 F021      BEQ	0x0099
      95 95C8      LPM
      96 9631      ADIW	R30,1
      97 920D      ST	R0,X+
      98 CFF9      RJMP	0x0092
      99 D976      RCALL	_main
_exit:
      9A CFFF      RJMP	_exit
_MsgMapProcess:
  pMsgMapItem          --> R20
  Reg2                 --> R22
  Reg3                 --> R22
  n1                   --> R10
  cMsgItemCount0       --> R14
  pMsgItem             --> R12
  pMsgMap              --> R22
      9B D9C7      RCALL	push_xgsetF0FC
      9C 0169      MOVW	R12,R18
      9D 01B8      MOVW	R22,R16
FILE: E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\RD_ADT_MSGMap.c
(0001) /***********************************************************
(0002) *   函数库说明:抽象数据类型(ADT)消息地图函数库            *
(0003) *   版本:    v1.00                                        *
(0004) *   作者:    王卓然                                       *
(0005) *   创建日期:2007年4月6日                                 *
(0006) * -------------------------------------------------------- *
(0007) *  [支 持 库]                                              *
(0008) *   支持库名称:RD_MacroAndConst.h                         *
(0009) *   需要版本:  v0.01 &abv                                 *
(0010) *   支持库说明:系统常用宏定义库                           *
(0011) *                                                          *
(0012) *   支持库名称:RD_ADT_MSGMAP.c                            *
(0013) *   需要版本:  -----                                      *
(0014) *   支持库名称:抽象数据类型(ADT)消息地图声明库            *
(0015) * -------------------------------------------------------- *
(0016) *  [版本更新]                                              *
(0017) *   修改:                                                 *
(0018) *   修改日期:                                             *
(0019) *   版本:                                                 *
(0020) * -------------------------------------------------------- *
(0021) *  [版本历史]                                              *
(0022) * -------------------------------------------------------- *
(0023) *  [使用说明]                                              *
(0024) ***********************************************************/
(0025) 
(0026) /********************
(0027) * 头 文 件 配 置 区 *
(0028) ********************/
(0029) # include "RD_MacroAndConst.h"
(0030) # include "RD_ADT_MSGMap.h"
(0031) 
(0032) /********************
(0033) *   系 统 宏 定 义  *
(0034) ********************/
(0035) 
(0036) /*------------------*
(0037) *   常 数 宏 定 义  *
(0038) *------------------*/
(0039) 
(0040) /*------------------*
(0041) *   动 作 宏 定 义  *
(0042) *------------------*/
(0043) 
(0044) /********************
(0045) *  用户变量类型定义 *
(0046) ********************/
(0047) 
(0048) /********************
(0049) *    结构体定义区   *
(0050) ********************/
(0051) 
(0052) /********************
(0053) *   模块函数声明区  *
(0054) ********************/
(0055) 
(0056) /********************
(0057) *   全局函数声明区  *
(0058) ********************/
(0059) BOOL MsgMapProcess(MSG_MAP *pMsgMap,MSG_ITEM *pMsgItem);
(0060) 
(0061) /********************
(0062) *   模块变量声明区  *
(0063) ********************/
(0064) 
(0065) /********************
(0066) *   全局变量声明区  *
(0067) ********************/
(0068) 
(0069) # include "PF_Config.h"
(0070) 
(0071) /***********************************************************
(0072) *   函数说明:消息地图处理函数                             *
(0073) *   输入:    消息地图,要处理的消息                       *
(0074) *   输出:    消息是否得到处理                             *
(0075) *   调用函数:无                                           *
(0076) ***********************************************************/
(0077) BOOL MsgMapProcess(MSG_MAP *pMsgMap,MSG_ITEM *pMsgItem)
(0078) {
(0079)     uint8 n = 0;
(0080)     uint8 cMsgItemCount = pMsgMap->cItemCount;
      9E 01FB      MOVW	R30,R22
      9F 80E0      LDD	R14,Z+0
(0081)     MSG_MAP_ITEM *pMsgMapItem = pMsgMap->pMsgItems;
      A0 8141      LDD	R20,Z+1
      A1 8152      LDD	R21,Z+2
(0082) 
(0083)     if ((pMsgMap == NULL) || (pMsgItem == NULL))            //强壮性检测
      A2 30E0      CPI	R30,0
      A3 07EF      CPC	R30,R31
      A4 F021      BEQ	0x00A9
      A5 20CC      TST	R12
      A6 F421      BNE	0x00AB
      A7 20DD      TST	R13
      A8 F411      BNE	0x00AB
(0084)     {
(0085)         return FALSE;
      A9 2700      CLR	R16
      AA C017      RJMP	0x00C2
(0086)     }
(0087)         
(0088)     for (n = 0;n < cMsgItemCount;n++)
      AB 24AA      CLR	R10
      AC C012      RJMP	0x00BF
(0089)     {
(0090)         if (pMsgMapItem[n].cCMD == pMsgItem->cCMD)
      AD E083      LDI	R24,3
      AE 9D8A      MUL	R24,R10
      AF 01B0      MOVW	R22,R0
      B0 0F64      ADD	R22,R20
      B1 1F75      ADC	R23,R21
      B2 01F6      MOVW	R30,R12
      B3 8020      LDD	R2,Z+0
      B4 01FB      MOVW	R30,R22
      B5 8030      LDD	R3,Z+0
      B6 1432      CP	R3,R2
      B7 F431      BNE	0x00BE
(0091)         {
(0092)             return ((*pMsgMapItem[n].pMsgFunc)(pMsgItem));
      B8 0186      MOVW	R16,R12
      B9 81A1      LDD	R26,Z+1
      BA 81B2      LDD	R27,Z+2
      BB 01FD      MOVW	R30,R26
      BC D9DB      RCALL	xicall
      BD C004      RJMP	0x00C2
      BE 94A3      INC	R10
      BF 14AE      CP	R10,R14
      C0 F360      BCS	0x00AD
(0093)         }
(0094)     }
(0095)     
(0096)     return FALSE;
      C1 2700      CLR	R16
      C2 C995      RJMP	pop_xgsetF0FC
_MSG_NULL_PROC:
  p                    --> R10
  pMsgItem             --> R16
      C3 92AA      ST	R10,-Y
      C4 92BA      ST	R11,-Y
(0097) }
(0098) 
(0099) /***********************************************************
(0100) *   函数说明:消息处理空函数                               *
(0101) *   输入:    要处理的消息                                 *
(0102) *   输出:    恒为FALSE                                    *
(0103) *   调用函数:无                                           *
(0104) ***********************************************************/
(0105) BOOL MSG_NULL_PROC(MSG_ITEM *pMsgItem)
(0106) {
(0107)     MSG_ITEM *p = pMsgItem;
      C5 0158      MOVW	R10,R16
(0108)     
(0109)     return FALSE;
      C6 2700      CLR	R16
      C7 90B9      LD	R11,Y+
      C8 90A9      LD	R10,Y+
      C9 9508      RET
_ADT_Queue_Add_To_Buffer:
  cflags0              --> R10
  pBuffer              --> R14
  nCount0              --> R20
  nHead0               --> Y,+0
  nTail0               --> R22
  nSize0               --> R12
  cData                --> R18
  pQueue               --> R16
      CA D998      RCALL	push_xgsetF0FC
      CB 9722      SBIW	R28,2
FILE: E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块应用版\Relative_Locate_Module\RD_ADT_QUEUE.c
(0001) /***********************************************************
(0002) *   函数库说明:抽象数据类型(ADT)队列函数库                *
(0003) *   版本:      v1.01                                      *
(0004) *   作者:      王卓然                                     *
(0005) *   创建日期:  2007年3月23日                              *
(0006) * -------------------------------------------------------- *
(0007) *  [支 持 库]                                              *
(0008) *   支持库名称:RD_MacroAndConst.h                         *
(0009) *   需要版本:  v0.01 &abv                                 *
(0010) *   支持库说明:系统常用宏定义库                           *
(0011) *                                                          *
(0012) *   支持库名称:RD_ADT_QUEUE.h                             *
(0013) *   需要版本:  -----                                      *
(0014) *   支持库说明:抽象数据类型(ADT)队列声明库                *
(0015) * -------------------------------------------------------- *
(0016) *  [版本更新]                                              *
(0017) *   修改:      王卓然                                     *
(0018) *   修改日期:  2007年4月17日                              *
(0019) *   版本:      v1.01                                      *
(0020) * -------------------------------------------------------- *
(0021) *  [版本历史]                                              *
(0022) *       v1.00   该版本提供了基本的抽象数据类型队列的结构定 *
(0023) *               义,以及默认的环形队列处理函数。           *
(0024) *       v1.01   增加了队列空判断函数,和队列首数据预览函数 *
(0025) * -------------------------------------------------------- *
(0026) *  [使用说明]                                              *
(0027) ***********************************************************/
(0028) 
(0029) /********************
(0030) * 头 文 件 配 置 区 *
(0031) ********************/
(0032) # include "RD_MacroAndConst.h"
(0033) # include "RD_ADT_QUEUE.h"
(0034) 
(0035) /********************
(0036) *   系 统 宏 定 义  *
(0037) ********************/
(0038) 
(0039) /*------------------*
(0040) *   常 数 宏 定 义  *
(0041) *------------------*/
(0042) 
(0043) /*------------------*
(0044) *   动 作 宏 定 义  *
(0045) *------------------*/
(0046) 
(0047) /********************
(0048) *    结构体定义区   *
(0049) ********************/
(0050) 
(0051) /********************
(0052) *   模块函数声明区  *
(0053) ********************/
(0054) 
(0055) /********************
(0056) *   全局函数声明区  *
(0057) ********************/
(0058) BOOL ADT_Queue_Add_To_Buffer(ADT_QUEUE *pQueue,uint8 cData);
(0059) BOOL ADT_Queue_Get_From_Buffer(ADT_QUEUE *pQueue,uint8 *pData);
(0060) BOOL ADT_Queue_Check_Empty(ADT_QUEUE *pQueue); 
(0061) BOOL ADT_Queue_Peek_From_Buffer(ADT_QUEUE *pQueue,uint8 *pData);
(0062) 
(0063) /********************
(0064) *   模块变量声明区  *
(0065) ********************/
(0066) 
(0067) /********************
(0068) *   全局变量声明区  *
(0069) ********************/
(0070) # include "PF_Config.h"
(0071) 
(0072) /***********************************************************
(0073) *   函数说明:抽象数据类型队列,系统默认队列缓冲添加函数   *
(0074) *   输入:    要添加到缓冲区的数据                         *
(0075) *   输出:    添加是否成功                                 *
(0076) *   调用函数:无                                           *
(0077) ***********************************************************/
(0078) BOOL ADT_Queue_Add_To_Buffer(ADT_QUEUE *pQueue,uint8 cData)
(0079) {
(0080)     uint8 *pBuffer;
(0081)     uint   nSize;
(0082)     uint   nTail;
(0083)     uint   nHead;
(0084)     uint   nCount;
(0085)     
(0086)     //PORTG ^= BIT(PG3);
(0087)     SAFE_CODE_PERFORMANCE                                   //原子操作
      CC B6AF      IN	R10,0x3F
      CD 94F8      BCLR	7
      CE 01F8      MOVW	R30,R16
      CF 80E0      LDD	R14,Z+0
      D0 80F1      LDD	R15,Z+1
      D1 80C2      LDD	R12,Z+2
      D2 80D3      LDD	R13,Z+3
      D3 20EE      TST	R14
      D4 F411      BNE	0x00D7
      D5 20FF      TST	R15
      D6 F021      BEQ	0x00DB
      D7 20CC      TST	R12
      D8 F429      BNE	0x00DE
      D9 20DD      TST	R13
      DA F419      BNE	0x00DE
      DB 9478      BSET	7
      DC 2700      CLR	R16
      DD C027      RJMP	0x0105
      DE 01F8      MOVW	R30,R16
      DF 8166      LDD	R22,Z+6
      E0 8177      LDD	R23,Z+7
      E1 8024      LDD	R2,Z+4
      E2 8035      LDD	R3,Z+5
      E3 8239      STD	Y+1,R3
      E4 8228      STD	Y+0,R2
      E5 8540      LDD	R20,Z+8
      E6 8551      LDD	R21,Z+9
      E7 0101      MOVW	R0,R2
      E8 1562      CP	R22,R2
      E9 0573      CPC	R23,R3
      EA F431      BNE	0x00F1
      EB 154C      CP	R20,R12
      EC 055D      CPC	R21,R13
      ED F419      BNE	0x00F1
      EE 9478      BSET	7
      EF 2700      CLR	R16
      F0 C014      RJMP	0x0105
      F1 01FB      MOVW	R30,R22
      F2 0DEE      ADD	R30,R14
      F3 1DFF      ADC	R31,R15
      F4 8320      STD	Z+0,R18
      F5 5F6F      SUBI	R22,0xFF
      F6 4F7F      SBCI	R23,0xFF
      F7 5F4F      SUBI	R20,0xFF
      F8 4F5F      SBCI	R21,0xFF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -