DSP LED跑马灯实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《DSP技术与实验》实验报告
姓名:学号:学期:
实验名:LED跑马灯
一、实验目的
1.熟悉CCS4集成开发环境
2.掌握CCS4下TMS320VC5509A的编程方法
3.熟悉CSL库的使用
二、实验设备
1.一台装有CCS4软件的计算机
开发板
V1仿真器
三、实验原理
LED实验是一个基础,主要为了熟悉开发环境和5509芯片基本编
程方式。要实现LED跑马灯就首先要对芯片GPIO进行控制,GPIO为General Purpose Input Output 的缩写,即通用输入输出接口。每个GPIO都可以配置为输入或输出。HX5509开发板的LED硬件电路如图一所示。对GPIO控制寄存器IODIP写1就可以设定GPIO为输出,然后对数据寄存器IODATA写1或0就可以控制LED状态。GPIO寄存器表如图二所示。
在TI的5509编程过程中,我们不需要直接对寄存器地址操作,而是可以使用TI官方提供的CSL函数库,即Chip Support Library(片级支持库)。有了它,可以简单方便的完成对DSP器件片上外设配置和控制的编程工作,从而简化了DSP片上外设开发工作,缩短开发周期,并且可以达成标准化控制的编程工作。通过查阅TMS320C55x Chip Support Library API Reference Guide .pdf可知,GPIO操作函数原型为:
而且官方手册中提示REG include the registers IODIR,IOD ATA,GPIODIR,GPIODATA,GPIOEN,AGPIODIR,AGPIODATA,and AGPIOEN。
想了解更多信息请查阅 DSP5509开发板\应用资料\官方手册
\TMS320C55x Chip Support Library API Reference Guide .pdf。
四、实验步骤
1.打开 CCS4 ,将开发板上电,链接好仿真器;
2打开本实验工程,编译工程;
3.点击Target---->Launch TI Debugger;
4.点击Target---->Connect Target 或者点击工具栏图标连接开发板,当出现如图所示,则说明连接成功。
5.点击Target---->Load Program 或者工具栏图标下载程序
6.点击Target---->Run或者图标运行程序。此时可以看到开发板上的LED灯开始闪烁。
五、实验结果及分析
1.记录本次实验的实验原理、设计过程、程序设计思想和实验结果、硬件测试结果。
的详细参数如工作电压,电流你知道吗
3.熟悉了解CSL库的使用方法。
六、参考文献
1.《所有实验说明.PDF》
2.《TMS320C55xDSP 原理及应用。》附件:程序及说明
#include <>
#include <>
#include <>
#include <>
void delay();
/*锁相环的设置*/
PLL_Config myConfig = {
0, //IAI: the PLL locks using the same process that was underway
//before the idle mode was entered
1, //IOB: If the PLL indicates a break in the phase lock, //it switches to its bypass mode and restarts the PLL phase-locking
//sequence
24, //PLL multiply value; multiply 24 times
1 //Divide by
2 PLL divide value; it can be either PLL divide value
//(when PLL is enabled), or Bypass-mode divide value
//(PLL in bypass mode, if PLL multiply value is set to 1)
};
main()
{
int i = 0;
/*初始化CSL库*/
CSL_init();
/*设置系统的运行速度为144MHz*/ PLL_config(&myConfig);
/*确定方向为输出*/
GPIO_RSET(IODIR,0xFF);
for(i = 0;i<0x0a;i++)
{
/*全亮*/
GPIO_RSET(IODATA,0xff);
delay();
/*全灭*/
GPIO_RSET(IODATA,0x0);
delay();
}
/*循环闪烁*/
for(;;)
{
GPIO_RSET(IODATA,0x1);
delay();
delay();
GPIO_RSET(IODATA,0x2);
delay();
delay();
GPIO_RSET(IODATA,0x4);
delay();
delay();
GPIO_RSET(IODATA,0x8);
delay();
delay();
GPIO_RSET(IODATA,0x10);
delay();
delay();
GPIO_RSET(IODATA,0x40);
delay();
delay();
GPIO_RSET(IODATA,0x80);
delay();
delay();
}
}
void delay()
{
Uint32 j = 0,k = 0;
for(j = 0;j<0x0c;j++)