教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

C语言版 DSP原理及应用实验指导书(3)

来源:网络收集 时间:2026-05-24
导读: 第三章 实验项目 SARAM_IN:origin = 0800h , length = 0800h/* 内部单访问RAM,数据区 */ SARAM_EX:origin = 8000h , length = 8000h/* 外部扩展RAM,数据区 */ } /*---------------------------------------------

第三章 实验项目

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所示。

将文件下载到实 …… 此处隐藏:3401字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言版 DSP原理及应用实验指导书(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/439340.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)