DSP实验报告+心得体会
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void delay_loop(void);
void Gpio_select(void);
// Global variable for this example
short codetab[17]=
{0x4020,0x6cc0,0x5800,0x4840,0x6440,0xC040,0xC000,0x4cc0,
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];
GpioMuxRegs.GPBMUX.all=var1;
GpioMuxRegs.GPDMUX.all=var1;
GpioMuxRegs.GPFMUX.all=var1;
GpioMuxRegs.GPEMUX.all=var1;
GpioMuxRegs.GPGMUX.all=var1;
GpioMuxRegs.GPADIR.all=var2;// GPIO PORTs as output
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的使用方法。
// Step 5. User specific code, enable interrupts:
GpioDataRegs.GPADAT.all=0;
Reg01=0x00;
GpioDataBiblioteka Baiduegs.GPADAT.all=0;
Reg02=0x00;
GpioDataRegs.GPADAT.all=0;
Reg03=0x00;
3.DSP硬件仿真器。
三、实验原理
浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。
四、实验步骤
1.打开CCS并熟悉其界面;
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;
GpioMuxRegs.GPAQUAL.all=var3;// Set GPIO input qualifier values
GpioMuxRegs.GPBQUAL.all=var3;
GpioMuxRegs.GPDQUAL.all=var3;
GpioMuxRegs.GPEQUAL.all=var3;
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”,
// For this example use the following configuration:
Gpio_select();
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example. This is useful for debug purposes.
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;
设置好后观察信号序列的波形(sin函数,如图);
5.单击运行;
6.观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;
7.修改输入序列的长度或初始值,重复上述过程。
五、实验心得体会
通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。
Uint16 var3;
var1= 0x0000;// sets GPIO Muxs as I/Os
var2= 0xFFFF;// sets GPIO DIR as outputs
var3= 0x0000;// sets the Input qualifier values
EALLOW;
GpioMuxRegs.GPAMUX.all=var1;
// This function is found in DSP281x_InitPeripherals.c
// InitPeripherals(); // Not required for this example
InitXintf(); // For this example, init the Xintf
// The shell ISR routines are found in DSP281x_DefaultIsr.c.
// This function is found in DSP281x_PieVect.c.
InitPieVectTable();
// Step 4. Initialize all the Device Peripherals:
// This example function is found in the DSP281x_SysCtrl.c file.
InitSysCtrl();
// Specific clock setting for this example:
EALLOW;
EDIS;
// Step 2. Initalize GPIO:
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
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];
四、实验步骤
1.把2812模块小板插到大板上;
2.在CCS2000环境中打开本实验的工程编译Example_7segled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片;
3.运行程序;数码管会显示1~8的数字。
4.参考源代码自行修改程序改变显示样式。
五、实验心得体会
通过本次实验中,基本掌握了2812的指令系统的特点,并能够了解并熟悉74HC573的使用方法,进一步加深了对DSP的认识。同时,通过实验操作DSP的IO操作使用方法,对于DSP的IO操作可以熟悉的运用,学到更多的知识。
程序见附录:
#include "include/DSP281x_Device.h" // DSP281x Headerfile Include File
#include "include/DSP281x_Examples.h" // DSP281x Examples Include File
// Prototype statements for functions found within this file.
龙岩学院
实验报告
班级07电本(1)班学号2007050344姓名杨宝辉同组人独立
实验日期2010-5-18室温大气压成绩
基础实验
一、实验目的
1.掌握CCS实验环境的使用;
2.掌握用C语言编写DSP程序的方法。
二、实验设备
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320F2812主控板;
float X0,Y0,Z0;
void main(void)
{
int i;
for(i=0;i<N;i++)
sin_value[i]=0;
X0=0.5; /* 0.100 0000 0000 0000 */
Y0=0.5; /* 0.100 0000 0000 0000 */
Z0=X0*Y0; /* 00.01 0000 0000 0000 0000 0000 0000 0000 */
从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。
附录实验程序:
#include "math.h"
#include "stdio.h"
#define N 100
#define pi 3.14159
float sin_value[100];
// This example function is found in the DSP281x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio(); // Skipped for this example
EDIS;
}
// No more.
龙岩学院
实验报告
班级07电本(1)班学号2007050344姓名杨宝辉同组人独立
实验日期2010-5-25室温大气压成绩
0x4000,0x4040,0x4400,0xE000,0xD080,0xE800,0xD000,0xD400,0xffff};
main()
{
short i;
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
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.
3.熟悉DSP的IO操作使用方法。
二、实验设备
1.一台装有CCS2000软件的计算机;
2.插上2812主控板的DSP实验箱;
3.DSP硬件仿真器。
三、实验原理
此模块由数码管和四个锁存器组成。数码管为共阴极型的。数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制对应的八个
void Gpio_select(void);
// Global variable for this example
short codetab[17]=
{0x4020,0x6cc0,0x5800,0x4840,0x6440,0xC040,0xC000,0x4cc0,
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];
GpioMuxRegs.GPBMUX.all=var1;
GpioMuxRegs.GPDMUX.all=var1;
GpioMuxRegs.GPFMUX.all=var1;
GpioMuxRegs.GPEMUX.all=var1;
GpioMuxRegs.GPGMUX.all=var1;
GpioMuxRegs.GPADIR.all=var2;// GPIO PORTs as output
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的使用方法。
// Step 5. User specific code, enable interrupts:
GpioDataRegs.GPADAT.all=0;
Reg01=0x00;
GpioDataBiblioteka Baiduegs.GPADAT.all=0;
Reg02=0x00;
GpioDataRegs.GPADAT.all=0;
Reg03=0x00;
3.DSP硬件仿真器。
三、实验原理
浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。
四、实验步骤
1.打开CCS并熟悉其界面;
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;
GpioMuxRegs.GPAQUAL.all=var3;// Set GPIO input qualifier values
GpioMuxRegs.GPBQUAL.all=var3;
GpioMuxRegs.GPDQUAL.all=var3;
GpioMuxRegs.GPEQUAL.all=var3;
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”,
// For this example use the following configuration:
Gpio_select();
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example. This is useful for debug purposes.
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;
设置好后观察信号序列的波形(sin函数,如图);
5.单击运行;
6.观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;
7.修改输入序列的长度或初始值,重复上述过程。
五、实验心得体会
通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。
Uint16 var3;
var1= 0x0000;// sets GPIO Muxs as I/Os
var2= 0xFFFF;// sets GPIO DIR as outputs
var3= 0x0000;// sets the Input qualifier values
EALLOW;
GpioMuxRegs.GPAMUX.all=var1;
// This function is found in DSP281x_InitPeripherals.c
// InitPeripherals(); // Not required for this example
InitXintf(); // For this example, init the Xintf
// The shell ISR routines are found in DSP281x_DefaultIsr.c.
// This function is found in DSP281x_PieVect.c.
InitPieVectTable();
// Step 4. Initialize all the Device Peripherals:
// This example function is found in the DSP281x_SysCtrl.c file.
InitSysCtrl();
// Specific clock setting for this example:
EALLOW;
EDIS;
// Step 2. Initalize GPIO:
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
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];
四、实验步骤
1.把2812模块小板插到大板上;
2.在CCS2000环境中打开本实验的工程编译Example_7segled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片;
3.运行程序;数码管会显示1~8的数字。
4.参考源代码自行修改程序改变显示样式。
五、实验心得体会
通过本次实验中,基本掌握了2812的指令系统的特点,并能够了解并熟悉74HC573的使用方法,进一步加深了对DSP的认识。同时,通过实验操作DSP的IO操作使用方法,对于DSP的IO操作可以熟悉的运用,学到更多的知识。
程序见附录:
#include "include/DSP281x_Device.h" // DSP281x Headerfile Include File
#include "include/DSP281x_Examples.h" // DSP281x Examples Include File
// Prototype statements for functions found within this file.
龙岩学院
实验报告
班级07电本(1)班学号2007050344姓名杨宝辉同组人独立
实验日期2010-5-18室温大气压成绩
基础实验
一、实验目的
1.掌握CCS实验环境的使用;
2.掌握用C语言编写DSP程序的方法。
二、实验设备
1.一台装有CCS软件的计算机;
2.DSP实验箱的TMS320F2812主控板;
float X0,Y0,Z0;
void main(void)
{
int i;
for(i=0;i<N;i++)
sin_value[i]=0;
X0=0.5; /* 0.100 0000 0000 0000 */
Y0=0.5; /* 0.100 0000 0000 0000 */
Z0=X0*Y0; /* 00.01 0000 0000 0000 0000 0000 0000 0000 */
从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。
附录实验程序:
#include "math.h"
#include "stdio.h"
#define N 100
#define pi 3.14159
float sin_value[100];
// This example function is found in the DSP281x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio(); // Skipped for this example
EDIS;
}
// No more.
龙岩学院
实验报告
班级07电本(1)班学号2007050344姓名杨宝辉同组人独立
实验日期2010-5-25室温大气压成绩
0x4000,0x4040,0x4400,0xE000,0xD080,0xE800,0xD000,0xD400,0xffff};
main()
{
short i;
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
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.
3.熟悉DSP的IO操作使用方法。
二、实验设备
1.一台装有CCS2000软件的计算机;
2.插上2812主控板的DSP实验箱;
3.DSP硬件仿真器。
三、实验原理
此模块由数码管和四个锁存器组成。数码管为共阴极型的。数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制对应的八个