C语言版 DSP原理及应用实验指导书(3)
第三章 实验项目
SARAM_IN:origin = 0800h , length = 0800h/* 内部单访问RAM,数据区 */ SARAM_EX:origin = 8000h , length = 8000h/* 外部扩展RAM,数据区 */ }
/*----------------------------------------------------------------------*/ /* CMD命令文件 - 程序段、数据段配置(LF2407A) */
/*----------------------------------------------------------------------*/
SECTIONS {
.vectors : { } > VECS PAGE 0 /* 指向自己定义的中断向量表 */ .text : { } > PROG PAGE 0 /* 程序代码 */ .cinit : { } > PROG PAGE 0 .switch : { } > PROG PAGE 0
.data : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ .bss : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ .const : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ .stack : { } > SARAM_IN PAGE 1 /* 堆栈,片内单访问RAM */ .sysmem : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ }
2)点击File—Save as,保存文件名为LF2407A_C.cmd,之后,在工程管理器中把LF2407A_C.cmd加入到工程first中。 3.3创建C语言头文件F2407REGS_c.h
窗口中新建文件输入附录1中的内容,并保存为F2407REGS_c.h文件。头文件
F2407REGS_c.h不需要自己添加到工程中。在main( )模块中,已包含该头文件,连接时,CCS会自动添加。 3.4 创建main()函数
1)点击File—New—Source File 输入以下内容:
/*********************************************************************** 文件名: main.c
描述和说明: main()函数是C程序的入口
***********************************************************************/ #include \ // 包含头文件math.h,因为sin函数在math.h中声明 #define N 32 // 每周期取32点 signed int Uab[N],Ubc[N]; // 被模拟电压Uab、Ubc unsigned int i;
main() { DSP2407_Initializing(); // DSP2407芯片初始化
- 9 -
第三章 实验项目
/****************************************************************/ /* 用sin库函数产生模拟电压信号(每周32点) */ /****************************************************************/ for (i=0;i 3.5创建DSP2407芯片初始化函数 通常,初始化函数包括以下几个方面 ? DSP2407芯片初始化; ? 工程应用中所用到的片内外设初始化; ? 片内外存储器初始化; ? 应用系统硬件接口初始化。 DSP2407芯片级的初始化,是任何工程应用中不可缺少的。 1)新建Source file文件输入以下内容: /********************************************************************** 文件名: DSP2407_Initializing() 描述和说明: DSP 2407芯片级初始化函数 **********************************************************************/ #include \ void DSP2407_Initializing() { asm(\ // 关总中断,INTM = 1 asm(\ // SXM置1,抑制符号扩展位 asm(\ // OVM清0,累加器中结果正常溢出 asm(\ // 可配置的片内双访问RAM块B0 // 被设置在数据空间 SCSR1=0x00FC; // 振荡器频率 CLKIN=10MHz, // 设置工作频率 CLKOUT=4*CLKIN=40MHz /* 0000,0000,1111,1100 =0x00FC 0~~~ ~~~~ ~~~~ ~~~~ [reserved] ~0~~ ~~~~ ~~~~ ~~~~ [CLKSRC] 选择CLKOUT引脚输出CPU时钟 ~~00 ~~~~ ~~~~ ~~~~ [LPM] CPU进入IDLE1(LMP0)模式 - 10 - 第三章 实验项目 ~~~~ 000~ ~~~~ ~~~~ [PLL] CPU工作频率是输入的4倍频,4*10=40MHz ~~~~ ~~~0 ~~~~ ~~~~ [reserved] ~~~~ ~~~~ 1~~~ ~~~~ [ADC CLKEN] 1: ADC片内外设使能 ~~~~ ~~~~ ~1~~ ~~~~ [SCI CLKEN] 1: SCI片内外设使能 ~~~~ ~~~~ ~~1~ ~~~~ [SPI CLKEN] 1: SPI片内外设使能 ~~~~ ~~~~ ~~~1 ~~~~ [CAN CLKEN] 1: CAN片内外设使能 ~~~~ ~~~~ ~~~~ 1~~~ [EVB CLKEN] 1: EVB片内外设使能 ~~~~ ~~~~ ~~~~ ~1~~ [EVA CLKEN] 1: EVA片内外设使能 ~~~~ ~~~~ ~~~~ ~~0~ [resered] 0 ~~~~ ~~~~ ~~~~ ~~~0 [ILLADR] 无效地址检测位,用户仅读。 */ WDCR=0x0068; //关软件狗 /* 0000,0000,0110,1000 =0x0068 0000 0000 0~~~ ~~~~ [reserved] ~~~~ ~~~~ ~1~~ ~~~~ [WDDIS] Watchdog Disable:1,关软件狗 ~~~~ ~~~~ ~~1~ ~~~~ [WDCHK2] Watchdog Check Bit 2. 1:写该控制寄存器时该位应为1 ~~~~ ~~~~ ~~~0 ~~~~ [WDCHK1] Watchdog Check Bit 1. 0:写该控制寄存器时该位应为0 ~~~~ ~~~~ ~~~~ 1~~~ [WDCHK0] Watchdog Check Bit 0. 1:写该控制寄存器时该位应为1 ~~~~ ~~~~ ~~~~ ~000 [WDPS2-WDPS0]. Watchdog Prescale Select Bits.000:软件狗分频为1 */ IMR=0x003F; //开放所有CPU核级中断 /* 0000 0000 0011 1111 =0x003F 0000 0000 00~~ ~~~~ [reserved] 0000 0000 00 ~~~~ ~~~~ ~~1~ ~~~~ [INT6] 1: INT6中断开放 ~~~~ ~~~~ ~~~1 ~~~~ [INT5] 1: INT5中断开放 ~~~~ ~~~~ ~~~~ 1~~~ [INT4] 1: INT4中断开放 ~~~~ ~~~~ ~~~~ ~1~~ [INT3] 1: INT3中断开放 ~~~~ ~~~~ ~~~~ ~~1~ [INT2] 1: INT2中断开放 ~~~~ ~~~~ ~~~~ ~~~1 [INT1] 1: INT1中断开放 */ IFR=0x003F; // 向所有中断标志位写1,以清除所有中断请求 /* 0000 0000 0011 1111 =0x003F 0000 0000 00~~ ~~~~ [reserved] 0000 0000 00 ~~~~ ~~~~ ~~1~ ~~~~ [INT6] 1: 清除INT6中断请求 ~~~~ ~~~~ ~~~1 ~~~~ [INT5] 1: 清除INT5中断请求 ~~~~ ~~~~ ~~~~ 1~~~ [INT4] 1: 清除INT4中断请求 ~~~~ ~~~~ ~~~~ ~1~~ [INT3] 1: 清除INT3中断请求 ~~~~ ~~~~ ~~~~ ~~1~ [INT2] 1: 清除INT2中断请求 ~~~~ ~~~~ ~~~~ ~~~1 [INT1] 1: 清除INT1中断请求 */ } 2)将该文件保存为Initializing.c文件,并加入到first工作中。 - 11 - 第三章 实验项目 3.6 创建假中断处理函数 1)双击Initializing.c文件打开该模块,在该模块的源文件编辑窗口下面输入以下内容: /********************************************************************** 文件名: PHANTOM() 描述和说明: 假中断函数。所有不需要的中断和错误中断都指向该函数。 *******************************************************************/ void interrupt PHANTOM(void) { static int phantom_count; phantom_count ++; return; } 2)再次保存文件Initializing.c。 3.7 软件调试 1)在工具栏上点击Incremental Build快捷键命令,进行编译和连接; 2)点击File—Load Program,在弹出的对话框中选择编译生成的first.out文件,如图1.3所示。
相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




