五邑大学 - TMS320VC5402定时器实验(DSP报告作业 - ) - 图文(2)

2020-02-20 22:55

四 、实验步骤

1、根据实验要求编写输出周期500ms方波的汇编语言源代码,和C语言源代码(c语言中加入外部中断,通过按键改变方波频率)。

2、编译无误后下载到C5402开发板中,运行程序,观察LED是否周期性亮灭。

3、下载c程序到开发板上,通过按下连接在外部中断上的按键,观察能否改变LED灯的亮灭频率。

五、程序源代码

1、主函数:

#include \int t0_count; void main()

{ CLKMD=0x00; //清零 while(CLKMD&01);

CLKMD=0x47ff; //开启PLL方式且采用5倍频

PMST=0x00a0; //将片内数据RAM映射到程序空间和数据空间并从0080地址开始 coeff=1;

t0_count=250*coeff;

asm(\ //关闭所有可屏蔽的中断 ST1=ST1|0x0800; //INTM=1

TCR=0x0010;//停止定时器,且当PSC减到0后,TIM减1;当调试程序断点时定时器立即

停止工作

PRD=9999; //定时周期寄存器存放定时时间常数,将值赋给TIM TIM=9999; //定时寄存器

TCR=0x669; //定时控制寄存器,启动定时器,将PRD中的数加载到TIM中

IFR=0x108; //中断标志寄存器,启动外部中断INT3和定时器中断0 (TINT0)的标志位

IMR=0x108; //中断屏蔽寄存器,开放外部中断INT3和定时器中断0 (INT0)的屏蔽位

asm(\ //开放全部可屏蔽中断 ST1=ST1&0xf7ff; while(1) {

while(t0_count>0); t0_count=250*coeff;

if(ST1&0x2000) ST1=ST1&0xdfff; //XF=0,即熄灭LED灯 else ST1=ST1|0x2000; //XF=1,即点亮LED灯

5

} }

interrupt void timer() {

t0_count--; }

interrupt void change_frequency() {

coeff++; //改变XF引脚输出的信号的频率 if (coeff>5) coeff=1; }

2、中断函数: .sect \ .ref _c_int00 .ref timer

rs: BD _c_int00 ;Rest nop nop

nmi: .space 4*16 ;NMI, SINT16 sint17:.space 4*16 ;SINT17 sint18: .space 4*16 ;SINT18 sint19: .space 4*16 ;SINT19 sint20: .space 4*16 ;SINT20 sint21: .space 4*16 ;SINT21 sint22: .space 4*16 ;SINT22 sint23: .space 4*16 ;SINT23 sint24: .space 4*16 ;SINT24 sint25: .space 4*16 ;SINT25 sint26: .space 4*16 ;SINT26 sint27: .space 4*16 ;SINT27 sint28: .space 4*16 ;SINT28 sint29: .space 4*16 ;SINT29 sint30: .space 4*16 ;SINT30

int0: .space 4*16 ;INT0, SINT0 int1: .space 4*16 ;INT1, SINT1 int2: .space 4*16 ;INT2, SINT2 tint0: BD timer ;TINT0, SINT3 nop nop

brint0: .space 4*16 ;BRINT0, SINT4 bxint0: .space 4*16 ;BXINT0, SINT5

dmac0: .space 4*16 ;DMAC0, brint2, SINT6 dmac1: .space 4*16 ;DMAC1, bxint2, SINT7

6

int3: .space 4*16 ;INT3, SINT8

hpint: .space 4*16 ;HPINT, SINT9

brint1: .space 4*16 ;BRINT1 or DMAC2, SINT10 bxint1: .space 4*16 ;BXINT1 or DMAC3, SINT11 dmac4: .space 4*16 ;DMAC4, SINT12 dmac5: .space 4*16 ;DMAC5, SINT13 rsvd1: .space 4*16 ;reserved rsvd2: .space 4*16 ;reserved .end

3、链接文件: MEMORY

{

PAGE 0: RESERVER: origin = 0x00, len = 0x80 INT_VECT: origin = 0x80, len = 0x80 PROG_RAM: origin = 0x100, len = 0x1000

PAGE 1: DATA_1: origin = 0x1100, len = 0x0e00 DATA_2: origin = 0x2000, len = 0x2000 }

SECTIONS {

.vectors: {} > INT_VECT PAGE 0 .text: {} > PROG_RAM PAGE 0 .stack: {} > DATA_1 PAGE 1 vars: {} > DATA_1 PAGE 1 .data:{} > DATA_2 PAGE 1 .bss:{} > DATA_2 PAGE 1 }

六、实验结果及体会

实验结果:每次按下按键,LED灯亮灭周期发生变化。

实验体会:一开始写入程序没成功,但是按下按键后,LED灯亮灭周期也发生变化,出现这种情况是实验板内部已经因为上一个人在试验中写入了程序,所以会出现插电后,程序没写入也能够按键改变亮灭周期。最后在老师的提醒下,成功写入程序,验证发现功能也得到了实现。在实验过程中每一步都要细心的去完成,多想想出现某种情况的原因,有不懂的就向老师、同学请教,这样才能在实验中进步。

7

二、基于DSPLib的FFT程序设计

一、实验目的

1、了解FFT的原理;

2、了解在DSP中FFT 的设计及编程方法; 3、熟悉对DSPLIB的调用方法;

二、实验内容

编写256点的实序列FFT的DSP程序,利用数据文件对FFT程序进行调试。

三、实验要求

1、产生256点的数据文件,表示方波、正弦等信号;

2、编写256点的实序列FFT的DSP程序对上述信号进行傅立叶变换; 3、利用CCS中VIEW菜单中的Graph调试工具观察信号时域波形及其频谱。

四、背景知识

1、时间抽选基2FFT算法的基本原理。(参阅《数字信号处理》教材) 2、DSPLib的应用

CCS提供DSPLib,其中包含了基本的数学计算和数字信号处理常用算法模块的函数,可直接调用这些函数实现一些数字信号处理算法。本实验主要使用了DSPLib的cbrev,rfft两个函数实现数字序列的逆序和DFT的计算。有关这两个函数的说明请参阅《dsplib中文版__TMS32054X_函数库中文用户指南.pdf》

程序流程图为:

开始输入待分析数据待分析数据变址运算基2FFT运算计算幅度谱

返回

8

五、实验步骤

1、根据实验要求编写256点FFT的C语言代码,中断向量表和CMD文件; 2、编译成功无误后下载到C5402开发板中,然后运行程序;

3、程序运行完成后,通过CCS中的View->Graph选项查看输入和输出波形, 4、分析实验结果是否符合要求。

六、程序源代码

1、主程序:

#include\

#include #include #include

#define Nx 256 //定义数组的长度即FFT运算长度 #define pi 3.1415926 //定义参数π的值

int i,j;

int scale=1; //归一化设置 int noscale=0; //非归一化设置

DATA x[Nx],x_tempt[Nx]; //用于存放输入的数据的数组 DATA y[Nx/2]; //用于存放输出的数据数组

#pragma DATA_SECTION(x,\

#pragma DATA_SECTION(x_tempt,\#pragma DATA_SECTION(y,\static void dataIO(void); void main() {

PMST=0x00a0; //将片内数据RAM映射到程序空间和数据空间,且地址从0080开始

dataIO(); //调用函数dataIO,即导入数据,且存放到x数组中 for(i=0;i

x[i]=(1000*(cos(2*pi*1000*i/16000)+2*cos(2*pi*2000*i/16000)+cos(2*pi*3000*i/16000)));

x[i]=(1000*(cos(2*pi*1000*i/16000)+2*cos(2*pi*2000*i/16000))); x_tempt[i]=x[i]; //将导入的数据存放到x_temp中

}

9


五邑大学 - TMS320VC5402定时器实验(DSP报告作业 - ) - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:冀教版五年级语文下册第五单元测试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: