DSP实验报告+心得体会
0x4000,0x4040,0x4400,0xE000,0xD080,0xE800,0xD000,0xD400,0xffff};
main()
{
short i;
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags:
IER = 0x0000;
IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt
GpioMuxRegs.GPBDIR.all=var2;// GPIO DIR select GPIOs as output
GpioMuxRegs.GPDDIR.all=var2;
GpioMuxRegs.GPEDIR.all=var2;
GpioMuxRegs.GPFDIR.all=var2;
GpioMuxRegs.GPGDIR.all=var2;
EDIS;
}
// No more.
龙岩学院
实验报告
班级07电本(1)班学号2007050344姓名杨宝辉同组人独立
实验日期2010-5-25室温大气压成绩
DINT;
// Initialize the PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the DSP281x_PieCtrl.c file.
// This example function is found in the DSP281x_SysCtrl.c file.
InitSysCtrl();
// Specific clock setting for this example:
EALLOW;
EDIS;
// Step 2. Initalize GPIO:
2.在CCS环境中打开本实验的工程(Example_base.pjt),编译并重建.out输出文件,然后通过仿真器把执行代码下载到DSP芯片中;
3.把X0 , Y0和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令);
4.选择view->graph->time/frequency…。设置对话框中的参数:其中“Start Address”设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”,
3.熟悉DSP的IO操作使用方法。
二、实验设备
1.一台装有CCS2000软件的计算机;
2.插上2812主控板的DSP实验箱;
3.DSP硬件仿真器。
三、实验原理
此模块由数码管和四个锁存器组成。数码管为共阴极型的。数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制对应的八个
for(i=0;i<N;i++)
sin_value[i]=100*(sin(2*pi*i/N));
}
龙岩学院
实验报告
班级07电本(1)班学号2007050344姓名杨宝辉同组人独立
实验日期2010-5-20室ቤተ መጻሕፍቲ ባይዱ大气压成绩
数码管控制实验
一、实验目的
1.熟悉2812的指令系统;
2.熟悉74HC573的使用方法。
龙岩学院
实验报告
班级07电本(1)班学号2007050344姓名杨宝辉同组人独立
实验日期2010-5-18室温大气压成绩
基础实验
一、实验目的
1.掌握CCS实验环境的使用;
2.掌握用C语言编写DSP程序的方法。
二、实验设备
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320F2812主控板;
GpioDataRegs.GPADAT.all=0;
Reg04=0x00;
while(1)
{
for(i=0;i<17;i++)
{
GpioDataRegs.GPADAT.all =~codetab[i];
Reg01=0x00;
delay_loop();
}
for(i=0;i<17;i++)
{
GpioDataRegs.GPADAT.all =~codetab[i];
// Step 5. User specific code, enable interrupts:
GpioDataRegs.GPADAT.all=0;
Reg01=0x00;
GpioDataRegs.GPADAT.all=0;
Reg02=0x00;
GpioDataRegs.GPADAT.all=0;
Reg03=0x00;
Reg04=0x00;
delay_loop();
}
}
}
void delay_loop()
{
short i,j;
for (i = 0; i < 32767; i++)
{for (j = 0; j < 10; j++);}
}
void Gpio_select(void)
{ Uint16 var1;
Uint16 var2;
void delay_loop(void);
void Gpio_select(void);
// Global variable for this example
short codetab[17]=
{0x4020,0x6cc0,0x5800,0x4840,0x6440,0xC040,0xC000,0x4cc0,
GpioMuxRegs.GPAQUAL.all=var3;// Set GPIO input qualifier values
GpioMuxRegs.GPBQUAL.all=var3;
GpioMuxRegs.GPDQUAL.all=var3;
GpioMuxRegs.GPEQUAL.all=var3;
// For this example use the following configuration:
Gpio_select();
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
Reg02=0x00;
delay_loop();
}
for(i=0;i<17;i++)
{
GpioDataRegs.GPADAT.all =~codetab[i];
Reg03=0x00;
delay_loop();
}
for(i=0;i<17;i++)
{
GpioDataRegs.GPADAT.all =~codetab[i];
从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。
附录实验程序:
#include "math.h"
#include "stdio.h"
#define N 100
#define pi 3.14159
float sin_value[100];
四、实验步骤
1.把2812模块小板插到大板上;
2.在CCS2000环境中打开本实验的工程编译Example_7segled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片;
3.运行程序;数码管会显示1~8的数字。
4.参考源代码自行修改程序改变显示样式。
五、实验心得体会
通过本次实验中,基本掌握了2812的指令系统的特点,并能够了解并熟悉74HC573的使用方法,进一步加深了对DSP的认识。同时,通过实验操作DSP的IO操作使用方法,对于DSP的IO操作可以熟悉的运用,学到更多的知识。
// This function is found in DSP281x_InitPeripherals.c
// InitPeripherals(); // Not required for this example
InitXintf(); // For this example, init the Xintf
3.DSP硬件仿真器。
三、实验原理
浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。
四、实验步骤
1.打开CCS并熟悉其界面;
// The shell ISR routines are found in DSP281x_DefaultIsr.c.
// This function is found in DSP281x_PieVect.c.