📄 ex_support.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 + -