dsp控制器原理及专业技术实验报告

上传人:千****8 文档编号:115350344 上传时间:2019-11-13 格式:DOC 页数:8 大小:164KB
返回 下载 相关 举报
dsp控制器原理及专业技术实验报告_第1页
第1页 / 共8页
dsp控制器原理及专业技术实验报告_第2页
第2页 / 共8页
dsp控制器原理及专业技术实验报告_第3页
第3页 / 共8页
dsp控制器原理及专业技术实验报告_第4页
第4页 / 共8页
dsp控制器原理及专业技术实验报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《dsp控制器原理及专业技术实验报告》由会员分享,可在线阅读,更多相关《dsp控制器原理及专业技术实验报告(8页珍藏版)》请在金锄头文库上搜索。

1、DSP控制器原理及技术实验报告 作者: 日期:8 个人收集整理,勿做商业用途实验二 定时器一实验目的1. 熟悉如何编写 28335 的中断服务程序;2. 掌握长时间间隔的定时器的处理。3. 掌握片内外设的设置方法。二实验内容1. 系统初始化; 2. DSP 的初始设置;3. 定时中断的编写;三实验要求1. 通过本实验,熟悉中断的结构及用中断程序控制程序流程,掌握定时器的应用;2. 分析给定程序代码功能,并在实验报告中给出程序流程图和必要的注释;3. 改变定时时间,下载运行,观察结果,在报告中计算出运行时间。四实验背景知识TMS320F28335 片上有 3 个 32-位 CPU 定时器,分别被

2、称为 CPU 定时器 0、1 和2。每个定时器中均有一个 32-位减计数器,当计数器减到 0 时,产生一个中断。其中,CPU 定时器 0 的中断 TINT0 为 PIE 中断,CPU 定时器 1 的中断 TINT1 直接连到 CPU中断的 INT13,CPU 定时器 2 的中断 TINT2 直接连到 CPU 中断的 INT14。如下图所示。CPU 定时器 2 保留为实时操作系统(如 DSP BIOS)使用,而 CPU 定时器 0、 1 则可被用户使用,SEED-DEC28335 未使用 CPU 定时器 0,用户可以根据应用的需要灵活使用。CPU 定时器的原理框图和定时中断如下图所示。定时器在工

3、作过程中,首先用 32 位计数寄存器(TIMH:TIM)装载周期寄存器(PRDH: PRD)内部的值。计数寄存器根据 SYSCLKOUT 时钟递减计数。当计数寄存器等于 0 时,定时器中断输出产生一个中断脉冲。定时器计数器(TIMH: TIM): TIM 寄存器保存当前 32 位定时器计数值的低 16 位,TIMH 寄存器保存高 16 位。每隔(TDDRH:TDDR1)个时钟周期 TIMH:TIM 减 1,当 TIMH:TIM 递减到 0 时,TIMH:TIM 寄存器重新装载 PRDH:PRD 寄存器保存的周期值,并产生定时器中断TINT信号。定时器周期寄存器(PRDH:PRD):PRD 寄存

4、器保存 32 位周期值的低 16 位,PRDH 保存高 16 位。当 TIMH: TIM 递减到零时,在下次定时周期开始之前 TIMH: TIM寄存器重新装载 PRDH:PRD 寄存器保存的周期值;当用户将定时器控制寄存器(TCR)的定时器重新装载位(TRB)置位时, TIMH: TIM 也会重新装载 PRDH: PRD 寄存器保存的周期值。五实验准备1 实验硬件准备1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC28335 单元的 J18 相连接;3. 启动计算机,当计算机启动后,打开SEED-DTK28335的电源。观察SEED-DTK

5、_MBoard 单元的5V,3.3V,15V,15V 的电源指示灯灯及SEED-DEC28335 的电源指示灯 D2 是否均亮;若有不亮,断开电源,检查电源。2 实验软件准备1在F盘新建timer文件夹2. 将实验箱所带光盘中的cputimer文件夹下的include、lib、src、28335.cmd、 dsp2833x_header_nonbios.cmd拷贝进F盘新建timer文件夹下3 新建、加载工程和文件1. 双击SETUP CCStudio3.3;2. 在famlily中选择C28XX,在platform中选择SEEDXDS510PLUS;3. 点击左下角save&quit,进入C

6、CS主调试界面;4. 点击project-new,键入project名和路径,确认后CCS左边project中出现新建立的工程timer.pjt;5. 右击source-addfilestoproject,再进入src,在文件类型中选择allfiles,加载src中的全部程序;6. 右击source-addfilestoproject,在timer文件夹的文件类型中选择allfiles, 并加载28335.cmd和dsp2833x_header_nonbios.cmd两个文件;7. 右击source-addfilestoproject,再进入lib文件夹并加载其中的 rts2800fpu32.

7、lib。4编译配置及调试 1. 点击CCS上面的project的buildoptions选项,点击第二项compiler-advanced,在floatingpointsupport下拉菜单中选择fpu32;在preproess中的一项中指定头文件路径F:timerinclude2. 在linker-basic中选择suppressbanner(-q)3. 点击编译,如无问题,在file中的loadprogram下载编译生产的.out文件即可在线调试。注意:在自己新建的timer工程中编译会出现5个警告,解决方法如下:1. 打开头文件incluede下的DSP2833x_GlobalProto

8、types.h,在第24行加入: externvoidInitXintf(void);语句; 2. 打开source下的cputimer.c,在第六行加入:includeDSP2833x_GlobalPrototypes.h3. 保存以上修改重新编译即可消除警告。4. 其他实验不存在以上问题。六实验结果1.#include DSP2833x_Device.hunsigned int Led_Flag;interrupt void ISRTimer2(void);unsigned int * LED3 = (unsigned int *) 0x4080;void main(void)/ Step

9、 1. Initialize System Control:初始化系统控制:/ PLL, WatchDog, enable Peripheral Clocks锁相环,监督机构,使能外围时钟/ This example function is found in the DSP2833x_SysCtrl.c file.这个例子函数是在DSP2833x_SysCtrl.c文件中找到。 InitSysCtrl();/ Step 2. Initialize GPIO:2 .初始化GPIO步:/ This example function is found in the DSP2833x_Gpio.c f

10、ile and/ illustrates how to set the GPIO to its default state.这个例子在DSP2833x_Gpio.c文件和函数发现说明如何设置的GPIO的默认状态。 InitGpio(); / Skipped for this example/ Step 3. Clear all interrupts and initialize PIE vector table:步骤3 .清除所有中断和初始化PIE中断向量表:/ Disable CPU interrupts使能CPU中断 DINT;/ Initialize the PIE control re

11、gisters to their default state.初始化PIE控制寄存器的默认状态。/ The default state is all PIE interrupts disabled and flags are cleared.默认状态是所有PIE禁用中断和标志被清除/ This function is found in the DSP2833x_PieCtrl.c file.这个函数是在DSP2833x_PieCtrl.c文件中找到。 InitPieCtrl();/ Disable CPU interrupts and clear all CPU interrupt flags

12、:禁用CPU中断和清除所有CPU中断标志: 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 fo

13、und in DSP2833x_DefaultIsr.c./ This function is found in DSP2833x_PieVect.c.初始化PIE中断矢量表指针服务例程(ISR)。 InitPieVectTable();/ Interrupts that are used in this example are re-mapped toISR functions found within this file.中断在本例中使用重新映射到ISR函数中找到这个文件 EALLOW; / This is needed to write to EALLOW protected regis

14、ter这是需要写EALLOW注册保护 PieVectTable.TINT2 = &ISRTimer2; EDIS; / This is needed to disable write to EALLOW protected registers这是需要禁用写EALLOW保护寄存器/ Step 4. Initialize all the Device Peripherals:步骤4 .初始化所有的设备外围设备:/ This function is found in DSP2833x_InitPeripherals.c这个函数是在DSP2833x_InitPeripherals.c找到/ InitPeripherals(); / Not required for this example/ Step 5. User specific code, enable interrupts:第5步。用户特定的代码,使中断: /*Initial XZONE*/ InitXintf();/*设置CPU*/InitCpuTimers();ConfigCpuTimer(&CpuTimer2, 150, 1000000); St

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号