




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
郑州航空工业管理学院电子通信工程系DSP原理及应用实验报告 学 号: 101308205 姓 名: 韩 红 印 专 业: 电子信息工程 指导老师: 赵 成 老 师 实验一 CCS的安装与设置1. 实验目的掌握CCS 2(2000)集成开发环境的安装;掌握软件仿真环境的设置方法;熟悉CCS集成开发环境的应用界面。2. 实验设备PC机、CCS 2(2000)IDE软件、EXP-IV DSP实验箱3. 实验要求熟悉安装CCS 2(2000)IDE软件的步骤根据DSP芯片的型号正确设置软件仿真环境了解CCS集成开发环境应用界面的各项内容4. 实验内容(1) CCS 2(2000)IDE软件的安装步骤,按照如下图1-1到图1-12依次进行设置即可装置载好该软件,生成快捷方式如图1-13。图1-1点击Code Composer Studio,出现如图1-2图1-2图1-3图1-4图1-5图1-6图1-7图1-8图1-9图1-10图1-11图1-12图1-13(2) TMS320F2812 微处理器的软件仿真环境的设置,如图1-14和图1-15。图1-14图1-15(3) CCS集成开发环境的应用界面,如图1-16。图1-16实验二 GPIO模块的驱动程序设计1.实验目的掌握CCS硬件仿真环境的设置方法;掌握GPIO模块的驱动与测试方法;熟悉工程的编译、下载与调试方法。2.实验设备PC机、CCS 2(2000)IDE软件、XDS510仿真器、EXP-IV DSP实验箱3.实验要求熟悉GPIO模块的功能原理会利用SPRC097中的工程环境建立或打开工程实现GPIO模块的驱动编程4.实验内容(1)CCS硬件仿真环境的设置图2-1图2-2(2) 建立GPIO模块的工程图2-3(3) 主要程序代码 #include DSP281x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP281x Examples Include File#define EXAMPLE1 1 / Use DATA registers to toggle I/Os#define EXAMPLE2 0 / Use SET/CLEAR registers to toggle I/Os#define EXAMPLE3 0 / Use TOGGLE registers to toggle I/Os/ Prototype statements for functions found within this file.void delay_loop(void);void Gpio_select(void);void Gpio_example1(void);void Gpio_example2(void);void Gpio_example3(void);void main(void)/ Step 1. Initialize System Control:/ PLL, WatchDog, enable Peripheral Clocks/ This example function is found in the DSP281x_SysCtrl.c file. InitSysCtrl(); / Step 2. Initalize GPIO: / This example function is found in the DSP281x_Gpio.c file and/ illustrates how to set the GPIO to its default state./ InitGpio(); / Skipped for this example / For this example use the following configuration: Gpio_select(); / Step 3. Clear all interrupts and initialize PIE vector table:/ Disable CPU interrupts DINT;/ Initialize 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. 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 / 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./ 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 function is found in DSP281x_InitPeripherals.c/ InitPeripherals(); / Not required for this example/ Step 5. User specific code:#if EXAMPLE1 / This example uses DATA registers to toggle I/Os Gpio_example1();#endif / - EXAMPLE1#if EXAMPLE2 / This example uses SET/CLEAR registers to toggle I/Os Gpio_example1(); #endif#if EXAMPLE3 / This example uses TOGGLE registers to toggle I/Os Gpio_example3(); #endif void delay_loop() short i; for (i = 0; i 1000; i+) void Gpio_example1(void) / Example 1: / Toggle I/Os using DATA registers / Note: When using the DATA reigsters, input values / may be lost. If there are inputs on the port then / use the CLEAR/SET/TOGGLE registers instead. while(1) GpioDataRegs.GPADAT.all =0xAAAA; GpioDataRegs.GPBDAT.all =0xAAAA; GpioDataRegs.GPDDAT.all =0x0022; GpioDataRegs.GPEDAT.all =0x0002; GpioDataRegs.GPFDAT.all =0xAAAA; GpioDataRegs.GPGDAT.all =0x0020; delay_loop(); GpioDataRegs.GPADAT.all =0x5555; GpioDataRegs.GPBDAT.all =0x5555; GpioDataRegs.GPDDAT.all =0x0041; / Four I/Os only GpioDataRegs.GPEDAT.all =0x0005; / ThreeI/Os only GpioDataRegs.GPFDAT.all =0x5555; GpioDataRegs.GPGDAT.all =0x0010; / Two I/Os only delay_loop(); void Gpio_example2(void) / Example 2: / Toggle I/Os using SET/CLEAR registers while(1) GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555; GpioDataRegs.GPBSET.all =0xAAAA; GpioDataRegs.GPBCLEAR.all =0x5555; GpioDataRegs.GPDSET.all =0x0022; GpioDataRegs.GPDCLEAR.all =0x0041; / Four I/Os only GpioDataRegs.GPESET.all =0x0002; GpioDataRegs.GPECLEAR.all =0x0005; / ThreeI/Os only GpioDataRegs.GPFSET.all =0xAAAA; GpioDataRegs.GPFCLEAR.all =0x5555; GpioDataRegs.GPGSET.all =0x0020; GpioDataRegs.GPGCLEAR.all =0x0010; / Two I/Os only delay_loop(); GpioDataRegs.GPACLEAR.all =0xAAAA; GpioDataRegs.GPASET.all =0x5555; GpioDataRegs.GPBCLEAR.all =0xAAAA; GpioDataRegs.GPBSET.all =0x5555; GpioDataRegs.GPDCLEAR.all =0x0022; GpioDataRegs.GPDSET.all =0x0041; / Four I/Os only GpioDataRegs.GPECLEAR.all =0x0002; GpioDataRegs.GPESET.all =0x0005; / ThreeI/Os only GpioDataRegs.GPFCLEAR.all =0xAAAA; GpioDataRegs.GPFSET.all =0x5555; GpioDataRegs.GPGCLEAR.all =0x0020; GpioDataRegs.GPGSET.all =0x0010; / Two I/Os only delay_loop(); void Gpio_example3(void) / Example 2: / Toggle I/Os using TOGGLE registers / Set pins to a known state GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555; GpioDataRegs.GPBSET.all =0xAAAA; GpioDataRegs.GPBCLEAR.all =0x5555; GpioDataRegs.GPDSET.all =0x0022; GpioDataRegs.GPDCLEAR.all =0x0041; / Four I/Os only GpioDataRegs.GPESET.all =0x0002; GpioDataRegs.GPECLEAR.all =0x0005; / ThreeI/Os only GpioDataRegs.GPFSET.all =0xAAAA; GpioDataRegs.GPFCLEAR.all =0x5555; GpioDataRegs.GPGSET.all =0x0020; GpioDataRegs.GPGCLEAR.all =0x0010; / Two I/Os only / Use TOGGLE registers to flip the state of / the pins. / Any bit set to a 1 will flip state (toggle) / Any bit set to a 0 will not toggle. while(1) GpioDataRegs.GPATOGGLE.all = 0xFFFF; GpioDataRegs.GPBTOGGLE.all = 0xFFFF; GpioDataRegs.GPDTOGGLE.all = 0xFFFF; GpioDataRegs.GPETOGGLE.all = 0xFFFF; GpioDataRegs.GPFTOGGLE.all = 0xFFFF; GpioDataRegs.GPGTOGGLE.all = 0xFFFF; delay_loop(); void Gpio_select(void) Uint16 var1; Uint16 var2; 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; 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 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; GpioMuxRegs.GPAQUAL.all=var3; / Set GPIO input qualifier values GpioMuxRegs.GPBQUAL.all=var3; GpioMuxRegs.GPDQUAL.all=var3; GpioMuxRegs.GPEQUAL.all=var3; EDIS; 5. 问题与分析GPIO管脚可以通过对GpioMuxRegs.GPxMUX.all=0xffff的设置,实现功能引脚的配置,通过设置GpioMuxRegs.GPxMUX.all=0x0000,实现管脚为输入引脚的功能。为输出引脚时,可以通过GpioDataRegs.GPxDAT.all=0x0000与GpioDataRegs.GPxDAT.all=0xffff设置对应引脚输出为低电平或为高电平。实验三 定时器的驱动与观察1.实验目的掌握SPRC097软件包的安装与使用方法;掌握在CCS集成开发环境下建立或打开工程的方法;掌握定时器的驱动与测试方法(定时将XF管脚置高与置低);掌握工程的编译、下载与调试方法;熟悉CCS集成开发环境中寄存器观察工具的使用。2.实验设备PC机、CCS 2(2000)IDE软件、EXP-IV DSP实验箱3.实验要求熟悉SPRC097软件包的安装步骤会利用SPRC097中的工程环境建立或打开工程实现定时器定时驱动XF管脚的编程会利用寄存器观察工具察看XF管脚的状态4.实验内容(1)SPRC097软件包的安装图3-1(2) 定时器定时驱动XF管脚的编程环境图3-2(3) 主要程序代码#include DSP281x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP281x Examples Include Filevoid delay(void);void main(void) int p,r,q; InitSysCtrl(); InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); /控制XF管脚 EALLOW; GpioMuxRegs.GPFMUX.all=0xffff; EDIS; for(r=0;r100;r+) /*xf管脚置低*/ asm( clrc xf); for(p=0;p10;p+) for(q=0;q10;q+) delay(); /*xf管脚置高*/ asm( setc xf); for(p=0;p10;p+) for(q=0;q10;q+) delay(); for(;) ; void delay(void) unsigned int k,i,j; for(k=0;k5;k+); for(i=0;i5;i+); for(j=0;j5;j+);图3-35. 问题与分析通过设置GpioMuxRegs.GPFMUX.all=0xffff,实现XF管脚的功能引脚功能。设置GpioMuxRegs.GPFMUX.all=0x0000,实现XF引脚的输入功能。当XF引脚为功能模式时,可以通过设置setc XF与clrc xf对XF引脚置低或置高。通过View下的Registers下的status查看XF管脚寄存器位的变化,如图(2-4)所示:图3-4实验四 外部中断的应用1.实验目的掌握中断服务程序的编写方法;掌握外部中断的驱动与测试方法;熟悉工程的编译、下载与调试方法。2.实验设备PC机、CCS 2(2000)IDE软件、XDS510、EXP-IV DSP实验箱3.实验要求熟悉外部中断XINT1的功能原理将工程环境设置为硬件仿真调试环境会利用SPRC097中的工程环境建立或打开工程实现外部中断的应用编程4.实验内容(1)建立外部中断的工程图4-1(2) 主要程序代码 /FILE: Led_Int.c/TITLE: DSP281x 外部中断测试程序 #include DSP281x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司春节互动活动方案
- 公司短视频小组活动方案
- 公司狂欢夜活动方案
- 2025年育儿嫂职业技能鉴定考试试题及答案
- 2025年网络信息安全法考试试题及答案
- 2025年现代生物技术专业水平考试试卷及答案
- 2025年特殊儿童教育教师资格考试试题及答案
- 2025年企业形象设计师资格考试试题及答案
- 2025年领导力与团队建设专业知识测试卷及答案
- 2025年大爱事业发展与慈善管理考试试卷及答案
- GB/T 27024-2014合格评定人员认证机构通用要求
- 1:1000地形图测绘项目技术设计书
- 2023年天河区中小学生游泳比赛成绩册
- 气功修炼十奥妙
- 可定的疗效与安全性
- 电力电子技术第五版(王兆安)课件全
- QB∕T 2080-2018 高回弹软质聚氨酯泡沫塑料
- 工程机械设备保险附加第三者责任保险条款
- 医院感染知识培训记录范文(精选6篇)
- 日周月安全检查记录表
- 上海电动汽车充电设施建设管理暂行规定
评论
0/150
提交评论