📄 reversion_bata1.txt
字号:
//文件:直接式在线擦伤检测DSP程序历史纪录
//位置:\...\abrasion_detection\log-period\log.txt
//编写人:尤志毅
//创建日期:2004年4月7日
//目前子版本号:V1.0
//修改子版本号: V1.5
//修改人: 尤志毅
//修改日期: 2004年5月6日~2004年6月26日
文件描述:本文件纪录了整个项目创立及调试过程中的更改历史
工程版本号v1.0.0.0(初版):
创建日期: 2004年4月7日
创建人: 尤志毅
工程名:AbrasionDetection.pjt
配置文件: F2812.cmd 说明: DSP内存配置文件
包含头文件: AbrDectMain.h 说明: 主程序的变量和函数声明
DSP281xPieVect.h 说明: 中断变量和函数声明
F2812reg.h 说明: DSP寄存器定义
C&asm源文件: AbrDectMain.c 说明: 主程序文件
DSP281x_CodeStartBranch.asm 说明: 启动程序文件
DSP281x_Ini.c 说明: 初始化程序文件
DSP281x_PieVectInt.c 说明: PIE中断程序文件
DSP281x_usDelay.asm 说明: 延时程序文件
主要源文件详细功能介绍:
AbrDectMain.c
文件概述: 主程序文件
功能描述:
本程序文件是整个工程项目的核心文件,完成项目所有资源的调度.本文件包含三
个头文件,分别是AbrDectMain.h,DSP281xPieVect.h和F2812reg.h。现包含
主函数,中断服务函数:CPUTIMER0,EVTIMER3(T3PINT),全局变量初始化函数
DSP281x_Ini.c
文件概述: 初始化程序文件
功能描述:
本程序包含dsp各个模块的初始化函数,具体如下:
InitSysCtrl();
KickDog();
DisableDog();
GpioInit();
EvInit();
SciInit();
XintfInit();
XintInit();
AdcInit();
ConfigCpuTimers();
TimersStart();
TimersStop();
DSP281x_PieVectInt.c
文件概述: PIE中断程序文件
功能描述:
本程序建立PIE中断向量表,定义各PIE中断入口地址,完成中断向量表的拷贝和
中断历程初始化:
InitPieCtrl();
EnableInterrupts();
InitPieVectTable();
//***************************************************************
// 以上为创建日志,以下为修改日志
//***************************************************************
//------------------------
//2004年4月14日添加&修改内容
//------------------------
AbrDectMain.h:
增加了ADC启动参数
DSP281x_Ini.c:
在AdcInit()函数中
1、soc脉冲的宽度为16个ADCCLK周期
2、设置了ADCCLK为12.5MHz(150MHz)
2、屏蔽了所有Adc中断
AbrDectMain.c:
1、ADC采样结果数组
2、屏蔽了CPU Timer0的启动函数
3、添加了ADC测试模块
//------------------------
//2004年4月15日添加&修改内容
//------------------------
F2812reg.h:
重新定义了数据类型
AbrDectMain.h:
在各个函数声明前添加了全局定义
DSP281x_Ini.c:
在AdcInit()函数中
1、只开启A0通道
AbrDectMain.c:
1、在ADC测试模块中添加了位于逻辑用来屏蔽ADC结果寄存器的符号位
原因:在反汇编中发现,编译器在把符号数赋给无符号数时,不能自动把符号位去掉
2、在测试中发现,所测得的数据偏差较大?
//-----------------------
//2004年5月4日添加&修改内容
//-----------------------
AbrDectMain.h:
1、用全局声明延时宏
2、增加错误处理函数声明
3、增加串口处理函数声明,设定串口缓存区大小
F2812reg.h:
添加无符号型数据类型预定义
DSP281x_PieVect.h
添加ADC中断和SCIA发送中断声明
AbrDectMain.c:
1、ADC采样结果数组,更改为结构体格式(两个成员:序号和数据); 增加了ADC模块使用到的全局变量
2、添加了串口模块相应的全局变量(如: 串口缓存区)
3、在变量初始化函数中,添加了所定义的全局变量的初始化程序
4、添加错误处理函数(未处理)
5、增加了串口处理函数: 发送数据函数(中断中调用), 数据发送开始帧, 数据发送结束帧, 数据发送帧, 发送ADC采样数据
6、增加ADC中断和SCIA发送中断服务程序
DSP281x_Ini.c:
1、改变ADC的工作模式,即Start-stop模式
2、ADC的时钟设置错误(ADCTRL3 |= 0x00c0 改成 ADCTRL3 |= 0x000C)
3、开启了Adc中断
4、开启SCIA中断
//-----------------------
//2004年5月5日添加&修改内容
//-----------------------
AbrDectMain.h:
1、更改采样数据缓存区大小
DSP281x_PieVect.h
添加中断声明
1、外部中断1,2
2、事件模块定时器1,3
3、捕获1,2,4,5
4、串口接收
AbrDectMain.c:
1、增加ADC采样结束标志位
2、增加串口模块相应的状态标志位
3、增加外部中断1,2服务程序
4、增加事件模块定时器1,3中断服务程序
5、增加捕获1,2,4,5中断服务程序
6、增加串口接收中断服务程序
//-----------------------
//2004年5月6日添加&修改内容
//-----------------------
AbrDectMain.h:
1、采用预定义,使得系统可以在不改变源程序时,在150Mhz和120Mhz之间切换
DSP281x_PieVect.h
1、PIEACK group mask的预定义符号后面加了(;),属于严重错误
2、增加了IER中断位屏蔽位预定义
AbrDectMain.c:
1、去掉ADC采样结束标志位
2、增加参考时钟结构体及初始化
3、增加磁钢捕获信息结构体和进轮和出轮标志位
4、增加计算绝对值和求两个数差的函数
5、在发送数据程序中采用判标志位的方法控制发送数据过程
6、开启CPU Timer0 计数使能
7、增加了捕获中断1、2中断处理函数
//-----------------------
//2004年5月7日添加&修改内容
//-----------------------
AbrDectMain.h:
1、使系统工作在120Mhz。因为在1.8V内核工作电压下,系统运行时钟达不到150Mhz
2、使用串口启动和通用定时器2的起停宏定义,PLL倍频使用宏定义
3、添加了发送错误状态的函数声明
4、采样缓冲区设定为2048
5、捕获中断中的滤波阈值设定为200
6、通用定时器的时钟设定为300us
AbrDectMain.c:
1、重新启用ADC采样结束标志位
2、重新调整了进轮和出轮标志位赋值使得正向和反向进出轮易于控制
3、添加了采样数据缓冲区溢出错误处理及报警功能
4、添加了发送错误信息的处理函数
5、增加了捕获1、2的测试变量(计数器)
6、增加错误类型全局变量
7、完成主程序(需要完善):包括轮数赋值,采样数据缓冲区溢出处理和发送采样数据
调试中发现的问题
a、进出轮逻辑混淆
b、捕获1、2中断标志位清错,特别注意ruturn的使用方法
//-----------------------
//2004年5月8日添加&修改内容
//-----------------------
AbrDectMain.h:
1、增加了错误级别宏定义
AbrDectMain.c:
1、在采样缓冲区溢出处理部分中,添加关闭GP2的语句,即停止ADC采样
2、在轮数赋值部分中,设置ADC采样结束标志位
3、去掉捕获1、2中断服务程序中的设置ADC采样结束标志位
4、在轮数赋值部分中,暂时不对轮数修正
5、增加正向运行和反向运行轮数量不等报错功能
//-----------------------
//2004年5月9日添加&修改内容
//-----------------------
AbrDectMain.h:
1、ADC采样时间改为500us
说明:到此为止,程序只适用于在科佳公司做实验!!!!!!!!!!
2、增加了采样通道数,重新组织了存储ADC采样值的方式
3、增加了数据发送帧函数和发送ADC采样数据函数的调用参数
F2812.cmd
重新分配内存空间,把ADC采样值存放在zone2区
AbrDectMain.c:
1、把采样数据存储在外部存储器
2、目前程序发送多组(一个轮的信息)数据还不理想,有待进一步完善!!!!!!!!!!
//-----------------------
//2004年6月23日添加&修改内容
//-----------------------
AbrDectMain.h:
1、增大adc采样存储区大小(3.5k*4实际使用3k*4)
2、采样率改为1ms
3、添加数据发送开始和结束函数的输入参数(位移传感器序号)
4、添加发送采样数据函数的输入函数(位移传感器序号)
AbrDectMain.c:
1、在ADC中断服务程序中添加溢出限制
2、设置错误标志位
3、在adc中断服务程序中添加内存溢出限制(使用局部变量)
4、通信协议中添加位移传感器序号项,用以区别一个传感器中的多个位移传感器
5、在主循环中,添加了位移传感器2和3采样数据发送的功能
DSP281x_Ini.c:
1、GP T2 的时钟设定为HSPCLK/8
//-----------------------
//2004年6月24日添加&修改内容
//-----------------------
AbrDectMain.c:
1、adc采样计数寄存器在数据发送函数中不应该清零,而应该在采样数据全部发送完后再清零。
2、在异常处理中,添加清位移传感器序号值
//-----------------------
//2004年6月26日添加&修改内容
//-----------------------
DSP281x_Ini.c:
1、添加外部RAM初始化函数
2、对外部RAM初始化时,采用分块初始化100KRAM空间的方法,即分两次初始化50kRAM空间。若一次性
初始化100kRAM空间,会出现未知错误,具体错误原因不知。
AbrDectMain.c:
1、添加调用外部RAM初始化函数
2、去掉错误处理中的初始化,只报告错误
3、把错误处理中的初始化移动到一个轮信息全部发送完毕后。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -