passive_encoder.lst

来自「全场地位系统:小车静止或移动过程中码盘进行全场定位,用的是avr单片机」· LST 代码 · 共 1,758 行 · 第 1/5 页

LST
1,758
字号
     2F8 9189      LD	R24,Y+
     2F9 9139      LD	R19,Y+
     2FA 9129      LD	R18,Y+
     2FB 9119      LD	R17,Y+
     2FC 9109      LD	R16,Y+
     2FD 9099      LD	R9,Y+
     2FE 9089      LD	R8,Y+
     2FF 9079      LD	R7,Y+
     300 9069      LD	R6,Y+
     301 9059      LD	R5,Y+
     302 9049      LD	R4,Y+
     303 9039      LD	R3,Y+
     304 9029      LD	R2,Y+
     305 9019      LD	R1,Y+
     306 9009      LD	R0,Y+
     307 9518      RETI
(0227) }
(0228) 
(0229) /***********************************************************
(0230) *   函数说明:SPI初始化函数                                *
(0231) *   输入:    无                                           *
(0232) *   输出:    无                                           *
(0233) *   调用函数:无                                           *
(0234) ***********************************************************/
(0235) static void SPI_INIT(void)
(0236) {
(0237)     SPCR = 0xFE; //setup SPI
HD_Support.c:SPI_INIT:
_SPI_INIT:
     308 EF8E      LDI	R24,0xFE
     309 BD8C      OUT	0x2C,R24
(0238)     SPSR = 0x00; //setup SPI
     30A 2422      CLR	R2
     30B BC2D      OUT	0x2D,R2
     30C 9508      RET
_SPI_STC_ISR:
     30D 922A      ST	R2,-Y
     30E 938A      ST	R24,-Y
     30F 939A      ST	R25,-Y
     310 93EA      ST	R30,-Y
     311 93FA      ST	R31,-Y
     312 B62F      IN	R2,0x3F
     313 922A      ST	R2,-Y
(0239) }
(0240) 
(0241) /***********************************************************
(0242) *   函数说明:SPI发送完成中断                              *
(0243) *   输入:    无                                           *
(0244) *   输出:    无                                           *
(0245) *   调用函数:INSERT_SPI_STC_ISR_CODE                      *
(0246) ***********************************************************/
(0247) void SPI_STC_ISR(void)
(0248) {
(0249)     INSERT_SPI_STC_ISR_CODE
     314 9478      BSET	7
     315 E285      LDI	R24,0x25
     316 E091      LDI	R25,1
     317 91E0 0136 LDS	R30,g_chSPICounter
     319 27FF      CLR	R31
     31A 0FE8      ADD	R30,R24
     31B 1FF9      ADC	R31,R25
     31C B42E      IN	R2,0x2E
     31D 8220      STD	Z+0,R2
     31E 9180 0136 LDS	R24,g_chSPICounter
     320 5F8F      SUBI	R24,0xFF
     321 9380 0136 STS	g_chSPICounter,R24
     323 3181      CPI	R24,0x11
     324 F439      BNE	0x032C
     325 2422      CLR	R2
     326 9220 0136 STS	g_chSPICounter,R2
     328 B185      IN	R24,0x05
     329 6084      ORI	R24,4
     32A B985      OUT	0x05,R24
     32B C009      RJMP	0x0335
     32C E184      LDI	R24,0x14
     32D E091      LDI	R25,1
     32E 91E0 0136 LDS	R30,g_chSPICounter
     330 27FF      CLR	R31
     331 0FE8      ADD	R30,R24
     332 1FF9      ADC	R31,R25
     333 8020      LDD	R2,Z+0
     334 BC2E      OUT	0x2E,R2
     335 9029      LD	R2,Y+
     336 BE2F      OUT	0x3F,R2
     337 91F9      LD	R31,Y+
     338 91E9      LD	R30,Y+
     339 9199      LD	R25,Y+
     33A 9189      LD	R24,Y+
     33B 9029      LD	R2,Y+
     33C 9518      RETI
FILE: E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\PF_Config.c
(0001) /***********************************************************
(0002) *   函数库说明:硬件平台配置函数库                         *
(0003) *   版本:                                                 *
(0004) *   作者:                                                 *
(0005) *   创建日期:                                             *
(0006) * -------------------------------------------------------- *
(0007) *  [硬件说明]                                              *
(0008) *   处理器:                                               *
(0009) *   系统时钟:                                             *
(0010) * -------------------------------------------------------- *
(0011) *  [支 持 库]                                              *
(0012) *   库名称:    PF_Config.h                                *
(0013) *   需要版本:  -----                                      *
(0014) *   支持库说明:硬件平台配置声明库                         *
(0015) * -------------------------------------------------------- *
(0016) *  [版本更新]                                              *
(0017) *   修改:                                                 *
(0018) *   修改日期:                                             *
(0019) *   版本:                                                 *
(0020) * -------------------------------------------------------- *
(0021) *  [版本历史]                                              *
(0022) * -------------------------------------------------------- *
(0023) *  [使用说明]                                              *
(0024) ***********************************************************/
(0025) 
(0026) /********************
(0027) * 头 文 件 配 置 区 *
(0028) ********************/
(0029) # include "PF_Config.h"
(0030) 
(0031) /********************
(0032) *   系 统 宏 定 义  *
(0033) ********************/
(0034) 
(0035) /*------------------*
(0036) *   常 数 宏 定 义  *
(0037) *------------------*/
(0038) 
(0039) /*------------------*
(0040) *   动 作 宏 定 义  *
(0041) *------------------*/
(0042) 
(0043) /********************
(0044) *  模块结构体定义区 *
(0045) ********************/
(0046) 
(0047) /********************
(0048) *   函 数 声 明 区  *
(0049) ********************/
(0050) void Platform_INIT(void);
(0051) 
(0052) /********************
(0053) *   模块函数声明区  *
(0054) ********************/
(0055) 
(0056) /********************
(0057) *   模块变量声明区  *
(0058) ********************/
(0059) 
(0060) /********************
(0061) *   全局变量声明区  *
(0062) ********************/
(0063) 
(0064) /***********************************************************
(0065) *   函数说明:系统初始化函数                               *
(0066) *   输入:    无                                           *
(0067) *   输出:    无                                           *
(0068) *   调用函数:Device_INIT() Driver_INIT()                  *
(0069) ***********************************************************/
(0070) void Platform_INIT(void)
(0071) {
(0072)     CLI();
_Platform_INIT:
     33D 94F8      BCLR	7
(0073)     
(0074)     Device_INIT();
     33E DDDD      RCALL	_Device_INIT
(0075)     Driver_INIT();
     33F DD48      RCALL	_Driver_INIT
(0076)     
(0077)     //*在这里插入你的系统环境变量初始化代码*//
(0078)     
(0079)     SEI();
     340 9478      BSET	7
     341 9508      RET
_Get_Absolute_Angle:
     342 D33F      RCALL	push_xgsetF000
FILE: E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\RD_UseDLocate_LIB.c
(0001) /***********************************************************
(0002) *   函数库说明:差分定位数值计算函数库                     *
(0003) *   版本:      v1.00beta                                  *
(0004) *   作者:      王卓然                                     *
(0005) *   创建日期:  2008年3月29日                              *
(0006) * -------------------------------------------------------- *
(0007) *  [支 持 库]                                              *
(0008) *   支持库名称:                                           *
(0009) *   需要版本:                                             *
(0010) *   支持库说明:                                           *
(0011) * -------------------------------------------------------- *
(0012) *  [版本更新]                                              *
(0013) *   修改:                                                 *
(0014) *   修改日期:                                             *
(0015) *   版本:                                                 *
(0016) * -------------------------------------------------------- *
(0017) *  [版本历史]                                              *
(0018) * -------------------------------------------------------- *
(0019) *  [使用说明]                                              *
(0020) ***********************************************************/
(0021) 
(0022) /********************
(0023) * 头 文 件 配 置 区 *
(0024) ********************/
(0025) # include "RD_MacroAndConst.h"
(0026) # include "DL_Config.h"
(0027) # include "RD_UseDLocate_LIB.h"
(0028) # include "PF_Config.h"
(0029) # include "Math.h"
(0030) 
(0031) /********************
(0032) *   系 统 宏 定 义  *
(0033) ********************/
(0034) 
(0035) /*------------------*
(0036) *   常 数 宏 定 义  *
(0037) *------------------*/
(0038) 
(0039) //轮子直径
(0040) #ifndef WHEEL_D_L
(0041)     #error No define WHEEL_D_L!
(0042) #endif
(0043) #ifndef WHEEL_D_R
(0044)     #error No define WHEEL_D_R!
(0045) #endif
(0046) 
(0047) //轮间距
(0048) #ifndef D_BTW_WHEEL
(0049)     #error No define D_BTW_WHEEL
(0050) #endif
(0051) 
(0052) //每圈线精度
(0053) #ifndef N_L
(0054)     #error No define N_L
(0055) #endif
(0056) #ifndef N_R
(0057)     #error No define N_R
(0058) #endif
(0059) 
(0060) //码盘倍频数
(0061) #ifndef MULTIPLE
(0062)     #error No define MULTIPLE
(0063) #endif
(0064) 
(0065) //计数器 到 弧长
(0066) # define K_L    ((PI * (WHEEL_D_L)) / ((MULTIPLE) * (N_L)))
(0067) # define K_R    ((PI * (WHEEL_D_R)) / ((MULTIPLE) * (N_R)))
(0068) 
(0069) 
(0070) 
(0071) 
(0072) /*------------------*
(0073) *   动 作 宏 定 义  *
(0074) *------------------*/
(0075) 
(0076) /********************
(0077) *  自定义类型声明区 *
(0078) ********************/
(0079) 
(0080) /********************
(0081) *  模块结构体定义区 *
(0082) ********************/
(0083) 
(0084) /********************
(0085) *   函 数 声 明 区  *
(0086) ********************/
(0087) float Get_Absolute_Angle(void);
(0088) float fMod(float fNumberA,float fNumberB);
(0089) BOOL PROC_Difference_Locate(void);
(0090) 
(0091) /********************
(0092) *   模块函数声明区  *
(0093) ********************/
(0094) 
(0095) /********************
(0096) *   模块变量声明区  *
(0097) ********************/
(0098) 
(0099) /********************
(0100) *   全局变量声明区  *
(0101) ********************/
(0102) float g_fLastAngle = 0.0;
(0103) float g_fX = 0.0;
(0104) float g_fY = 0.0;
(0105) 
(0106) /********************
(0107) *  全局变量声引用区 *
(0108) ********************/
(0109) extern BOOL g_bRunFlagB;
(0110) 
(0111) /***********************************************************
(0112) *   函数说明:获取当前绝对角度函数                         *
(0113) *   输入:    无                                           *
(0114) *   输出:    角度值                                       *
(0115) *   调用函数:无                                           *
(0116) ***********************************************************/
(0117) float Get_Absolute_Angle(void)
(0118) {
(0119)     return 
(0120)         (
     343 E500      LDI	R16,0x50
     344 E010      LDI	R17,0
     345 D35D      RCALL	lpm32
     346 0118      MOVW	R2,R16
     347 0129      MOVW	R4,R18
     348 E40C      LDI	R16,0x4C
     349 E010      LDI	R17,0
     34A D358      RCALL	lpm32
     34B 0138      MOVW	R6,R16
     34C 0149      MOVW	R8,R18
     34D 9120 010A LDS	R18,g_lCounterR+2
     34F 9130 010B LDS	R19,g_lCounterR+3
     351 9100 0108 LDS	R16,g_lCounterR
     353 9110 0109 LDS	R17,g_lCounterR+1
     355 D443      RCALL	long2fp
     356 933A      ST	R19,-Y
     357 932A      ST	R18,-Y
     358 931A      ST	R17,-Y
     359 930A      ST	R16,-Y
     35A 0183      MOVW	R16,R6
     35B 0194      MOVW	R18,R8
     35C D629      RCALL	fpmule2
     35D 0138      MOVW	R6,R16
     35E 0149      MOVW	R8,R18
     35F E408      LDI	R16,0x48
     360 E010      LDI	R17,0
     361 D341      RCALL	lpm32
     362 01A8      MOVW	R20,R16
     363 01B9      MOVW	R22,R18
     364 9120 0106 LDS	R18,g_lCounterL+2
     366 9130 0107 LDS	R19,g_lCounterL+3
     368 9100 0104 LDS	R16,g_lCounterL
     36A 9110 0105 LDS	R17,g_lCounterL+1
     36C D42C      RCALL	long2fp
     36D 933A      ST	R19,-Y
     36E 932A      ST	R18,-Y
     36F 931A      ST	R17,-Y
     370 930A      ST	R16,-Y
     371 018A      MOVW	R16,R20
     372 019B      MOVW	R18,R22
     373 D61C      RCALL	fpmule2x
     374 0183      MOVW	R16,R6
     375 0194      MOVW	R18,R8
     376 D3DE      RCALL	fpsub2x
     377 0181      MOVW	R16,R2
     378 0192      MOVW	R18,R4
     379 D60C      RCALL	fpmule2
     37A C30C      RJMP	pop_xgsetF000
_Get_Relative_Angle:
  lDCR                 --> Y,+8
  lDCL                 --> Y,+4
     37B D2C8      RCALL	push_arg4
     37C D305      RCALL	push_xgsetF000

⌨️ 快捷键说明

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