- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三:DSP 的定时器和外中断
定时器:
一.实验目的
1.通过实验熟悉VC5509A 的定时器;
2.掌握VC5509A 定时器的控制方法;
3.掌握VC5509A 的中断结构和对中断的处理流程;
4.学会C 语言中断程序设计,以及运用中断程序控制程序流程。
二.实验设备
计算机,ICETEK-VC5509-A 实验箱(或ICETEK 仿真器+ICETEK–VC5509-A 系统板+
相关连线及电源)。
三.实验原理
1.通用定时器介绍及其控制方法(详见spru595b.pdf):
TMS320VC5509A 内部有两个20 位通用定时器(GP):
* 每个通用定时器包括:
- 一个16 位的减计数的计数器TIM;
- 一个16 位的定时器周期寄存器PRD;
- 一个16 位的定时器控制寄存器TCR;
- 一个16 位的定时器预定标寄存器PSCR;
* PSCR 寄存器说明:
15 10 9 6 5 4 3 0
Reserved PSC Reserved TDDR
PSC: 4 位的预定标值,与TIM 共同组成20 位的定时计数器.
TDDR: 预定标周期寄存器(在需要时重装入PSC 的值)
TCR 寄存器说明(详见spru595b.pdf)
2.中断响应过程(详见spru595b.pdf):
外设事件要引起CPU 中断,必须保证:IER 中相应使能位被使能,IFR 相应中断也被
使能。在软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如
定时器)中断发生时,首先跳转到相应中断高级的服务程序中(如:定时器1 会引起TINT
中断),程序在进行服务操作之后,应将本外设的中断标志位清除以便能继续中断,然后返
回。
3.中断程序设计:
- 程序中应包含中断向量表,VC5509A 默认向量表从程序区0 地址开始存放,根据IPVD 和
IPVH 的值确定向量表的实际地址。
- 注意观察程序中INTR_init()函数的定义部分,其中IPVD 和IPVH 的值都为0x0d0;同时
观察配置文件ICETEK–VC5509-AE.cmd 中的VECT 段描述中o=0x0d000。
- 向量表中每项为8 个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址。
第一个向量表的首项为复位向量,即CPU 复位操作完成后自动进入执行的程序入口。
- 服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务
5.实验程序分析:
本实验设计的程序是在上实验3.1 基础上修改得来,由于实验3.1 控制指示灯闪烁的延
时控制是用循环计算方法得到的,延时不精确也不均匀,采用中断方式可以实现指示灯的定
时闪烁,时间更加准确。
实验程序的工程中包含了两种源代码,主程序采用C 语言编制利于控制,中断向量表
在vector.asm 汇编语言文件中,利于直观地控制存储区分配。在工程中只需将它们添加进来
即可,编译系统会自动识别分别处理完成整合工作。
实验程序的C 语言主程序中包含了内嵌汇编语句,提供一种在需要更直接控制DSP 状态时
的方法,同样的方法也能提高C 语言部分程序的计算效率
四.实验步骤
1.实验准备:
连接实验设备:请参看本书第三部分、第一章、二。
关闭实验箱上扩展模块和信号源电源开关。
2.设置Code Composer Studio 3.1 在硬件仿真(Emulator)方式下运行:
请参看本书第三部分、第一章、四、2。
3.启动Code Composer Studio 3.1:
请参看本书第三部分、第一章、五、2。
选择菜单Debug→Reset CPU。
4.打开工程文件:
打开菜单“Project”的“Open”项;选择C:\ICETEK\VC5509Ae\VC5509Ae\Lab0303-Timer
目录中的“Timer.pjt”。
在项目浏览器中,双击main.c,激活main.c 文件,浏览该文件的内容,理解各语句作用。
打开ICETEK–VC5509-Ae.cmd,对照vector.asm 源程序学习中断向量表的写法。
5.编译、下载程序。
6.运行程序,观察结果。
7.改变TIMER_init()函数里*prd0 = 0x0ffff 为 “=0x0fff ”;重复步骤5,6 观察实验现象。
五.实验代码
#include myapp.h// 定义指示灯寄存器地址和寄存器类型
#define LBDS (*((unsigned int *)0x400001))
void INTR_init( void );
void TIMER_init(void);
int nCount;
main()
{
nCount=0;
PLL_Init(40);
SDRAM_init();
LBD
您可能关注的文档
最近下载
- 2025-2026人教部编版三年级上册语文教学计划.docx VIP
- 施工现场车辆安全教育.pptx VIP
- 给排水系统学习培训ppt课件.pptx VIP
- 2025北京市十八里店乡人民政府城市协管员招聘21人笔试参考题库附答案解析.docx VIP
- 输血科管理制度、程序性文件、SOP文件.docx VIP
- 05J909_工程做法_建筑专业图集.docx VIP
- 2021海绵城市设施通用图集.docx VIP
- 【统编版】高中语文必修上册第一单元《3百合花》优质课(29张PPT)课件.pptx VIP
- 钢丝帘线压延机生产线(中文参考).doc VIP
- 2025年福建省福州市辅警协警笔试笔试预测试题(含答案).docx VIP
文档评论(0)