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

📄 ex_support.s

📁 全场地位系统:小车静止或移动过程中码盘进行全场定位,用的是avr单片机
💻 S
字号:
	.module EX_Support.c
	.area text(rom, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_s_wSystemDelayTimerCounter:
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_g_wSystemTimer::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_g_lCounterL::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_g_lCounterR::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_g_lCounterLImage::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_g_lCounterRImage::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_g_chSendBuffer::
	.blkb 2
	.area idata
	.byte 170,17
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 2
	.area idata
	.byte 172,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 1
	.area idata
	.byte 'U
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.dbsym e g_chSendBuffer _g_chSendBuffer A[17:17]c
_g_chReceiveBuffer::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.blkb 16
	.area idata
	.word 0,0,0,0,0
	.byte 0,0,0,0,0,0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
_g_chSPICounter::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.area text(rom, con, rel)
	.dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\EX_Support.c
	.dbfunc e Driver_INIT _Driver_INIT fV
	.even
_Driver_INIT::
	.dbline -1
	.dbline 109
; /***********************************************************
; *   函数库说明:底层硬件初始化驱动函数库                   *
; *   版本:                                                 *
; *   作者:                                                 *
; *   创建日期:                                             *
; * -------------------------------------------------------- *
; *  [硬件说明]                                              *
; *   处理器:                                               *
; *   系统时钟:                                             *
; * -------------------------------------------------------- *
; *  [支 持 库]                                              *
; *   支持库名称:HD_Support.h                               *
; *   需要版本:  -----                                      *
; *   支持库说明:底层硬件初始化声明库                       *
; *                                                          *
; *   支持库名称:EX_Support.h                               *
; *   需要版本:  -----                                      *
; *   支持库说明:底层硬件初始化驱动声明库                   *
; *                                                          *
; *   支持库名称:PF_Config.h                                *
; *   需要版本:  -----                                      *
; *   支持库说明:硬件平台配置声明库                         *
; * -------------------------------------------------------- *
; *  [版本更新]                                              *
; *   修改:                                                 *
; *   修改日期:                                             *
; *   版本:                                                 *
; * -------------------------------------------------------- *
; *  [版本历史]                                              *
; * -------------------------------------------------------- *
; *  [使用说明]                                              *
; ***********************************************************/
; 
; /********************
; * 头 文 件 配 置 区 *
; ********************/
; # include "PF_Config.h"
; # include "Ex_Support.h"
; # include "LIB_Config.h"
; # include "DL_Config.h"
; 
; /********************
; *   系 统 宏 定 义  *
; ********************/
; 
; /*------------------*
; *   常 数 宏 定 义  *
; *------------------*/
; 
; /*------------------*
; *   动 作 宏 定 义  *
; *------------------*/
; # pragma ctask Insert_Timer0_OVF_ISR_Code
; 
; /********************
; *  模块结构体定义区 *
; ********************/
; 
; /********************
; *   函 数 声 明 区  *
; ********************/
; void Insert_Timer0_OVF_ISR_Code(void);
; void Driver_INIT(void);
; void Delay_MS(uint16 wTime);
; BOOL PROC_Send_Frame(void);
; 
; /********************
; *   模块函数声明区  *
; ********************/
; 
; 
; 
; /********************
; *   模块变量声明区  *
; ********************/
; static uint16 s_wSystemDelayTimerCounter = 0;
; 
; 
; /********************
; *   全局变量声明区  *
; ********************/
; uint16 g_wSystemTimer = 0;
; INT32 g_lCounterL = 0;
; INT32 g_lCounterR = 0;
; INT32 g_lCounterLImage = 0;
; INT32 g_lCounterRImage = 0;
; 
; BYTE g_chSendBuffer[17] = 
;                 {
;                     0xAA,17,0xAC,
;                     0,0,0,0,0,0,0,0,0,0,0,0,
;                     0,0x55
;                 };
; BYTE g_chReceiveBuffer[17] = {0};
; BYTE g_chSPICounter = 0;
; 
; /********************
; *  全局变量声引用区 *
; ********************/
; extern BOOL g_bRunFlagA;
; 
; /***********************************************************
; *   函数说明:软件驱动初始化函数                           *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:无                                           *
; ***********************************************************/
; void Driver_INIT(void)
; {
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e PROC_Send_Frame _PROC_Send_Frame fc
;             n1 -> R18
;         chXOR0 -> R16
	.even
_PROC_Send_Frame::
	.dbline -1
	.dbline 120
;     //*在这里插入你的各类软件驱动初始化代码*//
; }
; 
; /***********************************************************
; *   函数说明:数据包发送函数                               *
; *   输入:    无                                           *
; *   输出:    FALSE                                        *
; *   调用函数:无                                           *
; ***********************************************************/
; BOOL PROC_Send_Frame(void)
; {
	.dbline 121
;     if (g_chSPICounter)
	lds R2,_g_chSPICounter
	tst R2
	breq L3
X0:
	.dbline 122
;     {
	.dbline 123
;         return TRUE;
	ldi R16,1
	rjmp L2
L3:
	.dbline 126
;     }
;     //处理数据
;     TYPE_CONVERSION(&g_chSendBuffer[3],float) = g_fX;
	lds R4,_g_fX+2
	lds R5,_g_fX+2+1
	lds R2,_g_fX
	lds R3,_g_fX+1
	ldi R30,<_g_chSendBuffer+3
	ldi R31,>_g_chSendBuffer+3
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 127
;     TYPE_CONVERSION(&g_chSendBuffer[7],float) = g_fY;
	lds R4,_g_fY+2
	lds R5,_g_fY+2+1
	lds R2,_g_fY
	lds R3,_g_fY+1
	ldi R30,<_g_chSendBuffer+7
	ldi R31,>_g_chSendBuffer+7
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 128
;     TYPE_CONVERSION(&g_chSendBuffer[11],float) = g_fLastAngle;
	lds R4,_g_fLastAngle+2
	lds R5,_g_fLastAngle+2+1
	lds R2,_g_fLastAngle
	lds R3,_g_fLastAngle+1
	ldi R30,<_g_chSendBuffer+11
	ldi R31,>_g_chSendBuffer+11
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 130
;     
;     {
	.dbline 131
;         UINT8 n = 0;
	.dbline 132
;         BYTE chXOR = 0;
	clr R16
	.dbline 134
;         
;         for(n = 1;n < 15;n++)
	ldi R18,1
	rjmp L11
L8:
	.dbline 135
;         {
	.dbline 136
;             chXOR ^= g_chSendBuffer[n];
	ldi R24,<_g_chSendBuffer
	ldi R25,>_g_chSendBuffer
	mov R30,R18
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	eor R16,R2
	.dbline 137
;         }
L9:
	.dbline 134
	inc R18
L11:
	.dbline 134
	cpi R18,15
	brlo L8
X1:
	.dbline 139
;         
;         g_chSendBuffer[15] = chXOR;
	sts _g_chSendBuffer+15,R16
	.dbline 140
;     }
	.dbline 143
;     
;     //开始发送数据
;     SPI_SS = LOW;
	in R24,0x5
	andi R24,251
	out 0x5,R24
	.dbline 144
;     SPDR = g_chSendBuffer[0];
	lds R2,_g_chSendBuffer
	out 0x2e,R2
	.dbline 146
;     
;     return FALSE;
	clr R16
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r n1 18 c
	.dbsym r chXOR0 16 c
	.dbend
	.dbfunc e Delay_MS _Delay_MS fV
;          wTime -> R16,R17
	.even
_Delay_MS::
	.dbline -1
	.dbline 156
; }
; 
; /***********************************************************
; *   函数说明:系统毫秒延时函数                             *
; *   输入:    需要延时的时间长度                           *
; *   输出:    无                                           *
; *   调用函数:无                                           *
; ***********************************************************/
; void Delay_MS(uint16 wTime)
; {
	.dbline 157
;     s_wSystemDelayTimerCounter = wTime;
	sts _s_wSystemDelayTimerCounter+1,R17
	sts _s_wSystemDelayTimerCounter,R16
L14:
	.dbline 159
;     
;     while(s_wSystemDelayTimerCounter);
L15:
	.dbline 159
	lds R2,_s_wSystemDelayTimerCounter
	lds R3,_s_wSystemDelayTimerCounter+1
	tst R2
	brne L14
	tst R3
	brne L14
X2:
	.dbline -2
L13:
	.dbline 0 ; func end
	ret
	.dbsym r wTime 16 i
	.dbend
	.dbfunc e Insert_Timer0_OVF_ISR_Code _Insert_Timer0_OVF_ISR_Code fV
;        cflags0 -> R16
	.even
_Insert_Timer0_OVF_ISR_Code::
	.dbline -1
	.dbline 169
; }
; 
; /***********************************************************
; *   函数说明:定时器0中断处理程序代码插入函数              *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:无                                           *
; ***********************************************************/
; void Insert_Timer0_OVF_ISR_Code(void)
; {
	.dbline 170
;     g_wSystemTimer++;
	lds R24,_g_wSystemTimer
	lds R25,_g_wSystemTimer+1
	adiw R24,1
	sts _g_wSystemTimer+1,R25
	sts _g_wSystemTimer,R24
	.dbline 172
; 
;     if (s_wSystemDelayTimerCounter)
	lds R2,_s_wSystemDelayTimerCounter
	lds R3,_s_wSystemDelayTimerCounter+1
	tst R2
	brne X3
	tst R3
	breq L18
X3:
	.dbline 173
;     {
	.dbline 174
;         s_wSystemDelayTimerCounter--;
	movw R24,R2
	sbiw R24,1
	sts _s_wSystemDelayTimerCounter+1,R25
	sts _s_wSystemDelayTimerCounter,R24
	.dbline 175
;     }
L18:
	.dbline 177
;     
;     SAFE_CODE_PERFORMANCE
	.dbline 177
	in R16,0x3f
	.dbline 177
	cli
	.dbline 177
	lds R4,_g_lCounterL+2
	lds R5,_g_lCounterL+2+1
	lds R2,_g_lCounterL
	lds R3,_g_lCounterL+1
	sts _g_lCounterLImage+1,R3
	sts _g_lCounterLImage,R2
	sts _g_lCounterLImage+2+1,R5
	sts _g_lCounterLImage+2,R4
	.dbline 177
	lds R4,_g_lCounterR+2
	lds R5,_g_lCounterR+2+1
	lds R2,_g_lCounterR
	lds R3,_g_lCounterR+1
	sts _g_lCounterRImage+1,R3
	sts _g_lCounterRImage,R2
	sts _g_lCounterRImage+2+1,R5
	sts _g_lCounterRImage+2,R4
	.dbline 177
	.dbline 177
	out 0x3f,R16
	.dbline 177
	.dbline 182
;     (
;         g_lCounterLImage = g_lCounterL;
;         g_lCounterRImage = g_lCounterR;
;     )
;     g_bRunFlagA = TRUE;
	ldi R24,1
	sts _g_bRunFlagA,R24
	.dbline -2
L17:
	.dbline 0 ; func end
	ret
	.dbsym r cflags0 16 c
	.dbend
;     
;     #ifdef _DEBUG
;     if (!(g_wSystemTimer & (BIT(5) - 1)))
;     {
;         LCDSP027_refresh_DISP_BUFF();
;     }
;     #endif
; }

⌨️ 快捷键说明

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