DSP事件管理器实验报告.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验目的和要求 实验目的 通过实验了解TMS320F2812事件管理器模块的原理和应用方法; 学习利用事件管理器的通用定时器与全比较单元点亮8盏红灯。 实验要求 读懂老师提供的例程,运行例程观察实验结果进行验证; 修改例程,点亮8盏红灯并实现亮度正弦分布的渐变交替闪烁; 分析实验结果,并根据实验过程写出心得、体会。 实验内容和原理 事件管理器(Event Manager,简称EV)是F2812的重要功能模块。F2812 DSP具有两个功能完全相同的事件管理器EVA和EVB,它们都具有通用定时器、比较单元、捕获单元、正交编码电路,两者尽在命名上有所区别。以其一为例,EVA模块具有2个16位的通用定时器(T1、T2)、3个比较单元、3个捕获单元和1个正交编码脉冲电路。 本次试验主要运用了通用定时器1的周期中断T1PINT、比较中断T1CMP和3个比较单元的比较中断CMP1INT、CMP2INT、CMP3INT。 通用定时器的中断事件是典型的外设中断,以T1为例,相关的中断有上溢中断、下溢中断、比较中断和周期中断。当T1CNT的值与T1比较寄存器T1CMPR的值相等时,发生定时器T1的比较中断。当发生比较匹配后,再过1个定时器时钟周期,则比较中断的标志位被置位。当T1CNT的值与T1周期寄存器T1PR的值相等时,发生定时器T1的周期中断。再过1个定时器时钟周期,则周期中断的标志位被置位。置位后,如果该中断已经使能,则外设会立刻向PIE控制器发送中断请求。在退出中断时要通过程序手动清除外设中断的标志位。每个比较单元都有一个比较中断,当T1CNT的值和比较单元的比较寄存器CMPRx的值相等是,发生比较单元x的比较中断CMPxINT。当发生比较匹配后,再过1个定时器时钟周期,则比较中断的标志位被置位。 主要仪器设备 装有CCS软件的计算机、仿真器、开发板 操作方法和实验步骤 实验步骤 实验室已经搭建好开发环境,且完成仿真器USB与计算机USB相连。所以直接给开发板上电,双击桌面的CCS图标打开软件; 选择Debug→Connect进行软硬件连接; 选择Project→Build options,在弹出的对话框选择Linker选项卡,Category栏内选择Basic,在Stack size中输入0x400; 选择Option→Customize,在Debug Properties中勾选Perform Go Main automatic,在Program/Project/CIO中勾选Load Program After Bt; 选择Project→Open菜单项打开老师提供的工程文件PWMLed.pjt,在CCS左侧的项目管理窗口可以看到,单击“+”展开,发相应的头文件、库文件和CMD文件已经添加完毕; 读懂源程序后,进行编译连接,观察实验结果与预期的比较; 根据实验要求修改源文件代码,使其达到需要的要求; 编译、连接、运行程序,修改错误,直到完成实验效果,观察并记录。 源程序与注释 #include PF.h void Init_Sys(void); /*初始化系统*/ void Init_IOF(void); /*初始化IO*/ void Init_CPUint(void); /*初始化CPU_int*/ void Init_PIEint(void); /*初始化CPU_int*/ void Init_EV(void); /*初始化EV*/ interrupt void eva_T1CINT_isr(void); interrupt void eva_T1PINT_isr(void); //添加T1比较中断 interrupt void eva_CMP1INT_isr(void); interrupt void eva_CMP2INT_isr(void); interrupt void eva_CMP3INT_isr(void); int prdnum; int led1_cmp; int led2_cmp; int led3_cmp; int led4_cmp; //添加变量,从控制六盏灯改为控制八盏灯 int led_tab[100]={ 587,585,583,580,576,571,565,558,549,540, 530,518,506,493,479,465,449,434,417,400, 383,365,347,329,311,293,274,256,238,220

文档评论(0)

_______ + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档