- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TMS320VC5402定时器实验.doc
TMS320VC5402定时器实验
一、 实验目的
1. 了解DSP汇编程序与C语言程序的构成;
2. 了解DSP程序各段的含义;
3. 熟悉如何编写中断服务程序;
4. 掌握片内定时器的设置方法;
5. 掌握长时间间隔的定时器的处理
二 、实验内容(要求)
1. DSP的初始设置;
2. DSP中断向量表的建立;
3. 定时器的使用;
三 、实验原理(背景知识)
TMS320VC5402定时器中有一个可编程的片上定时器,总共包含有三个可由用户设置的寄存器,并可以申请主机的中断。这三个寄存器分别为 TIM、PRD、TCR。
时间寄存器(TIM)是一个 16 位的存贮器映射寄存器,它的值由周期寄存器来进行装载,并且做减一操作。
周期寄存器(PRD)是一个 16 位的存贮器映射寄存器,它是用来重装时间寄存器(TIM)寄存器的值的。
定时器控制寄存器(TCR)是一个 16 位的存贮器映射寄存器,包含了定时器的控制与状态信息。
定时器的工作过程:
①?定时分频系数和周期数分别装入TCD和PRC寄存器中;
②?每来一个定时脉冲CLKOUT,计数器PSC减1;
③?当PSC减至0时,PSC产生借位信号;
④ 在PSC的借位信号作用下,TIM减1计数,同时将分频系数装入PSC,重新计数;
⑤?当TIM减到0时,定时时间到,由借位产生定时中断TINT和定时输出TOUT并将PRD中的时间常数重新装入TIM。
定时器的定时时间为:
定时周期 = CLKOUT×(TDDR+1)×(PRD+1)
程序框图如下:
四 、实验步骤
1、打开CCS,并设置好相对应的参数,显示硬件连接成功后,编写主函数。
2、主函数中先初始化,然后关中断,设置定时的相对应寄存器,打开中断,等待中断的到来,定时中断服务函数中对输出引脚取反,然后实现了LED的亮灭变化。为了改变定时的长度,还引入了按键中断服务,在按键中断服务函数中每按一下健,增加定时的长度。
3、接着编写中断向量表,中断向量表只要和主函数的中断一一对应就行。
4、添加支持c语言的库函数的头文件,编译,看一下会产生哪些链接文件,然后编写链接文件。
5、编译通过后,下载到板子上,验证是否有逻辑错误,然后进行修改。
五、程序源代码
1、主函数:
#include timer.h
int t0_count,coeff;
void main()
{ *CLKMD=0x0000;
while(*CLKMD0x0001);
*CLKMD=0x47ff;
*PMST=0x00a0;
coeff=1;
t0_count=250*coeff;
asm( ssbx intm);
//*ST1=*ST1|0x0800; //INTM=1
*TCR=0x0010;
*PRD=9999;
*TIM=9999;
*TCR=0x669;
*IFR=0x0108;
*IMR=0x0108;
asm( rsbx intm);
//*ST1=*ST10xf7ff; //INTM=0;
//
while(1)
{ while(t0_count0);
t0_count=250*coeff;
if(*ST10x2000)
{
*ST1=*ST10xDFFF;
}
else
{
*ST1=*ST1|0x2000;
}
}
}
interrupt void timer()
{
t0_count--;
}
interrupt void key_press()
{
coeff++;
if(coeff5){coeff=1;}
}
中断函数:
.ref _c_int00
.ref _timer
.ref _key_press
.sect .vectors
rs: BD _c_int00
nop
nop ;Rest
nmi: .space 4*16 ;NMI, SINT16
sint17:.space 4*16 ;SINT17
sint18: .space 4*16 ;SINT18
sint19: .space 4*16 ;SINT19
sint20: .space 4*16 ;SINT20
sint21: .space 4*16 ;SINT21
sint22: .space 4*16 ;SINT22
sint23: .space 4*16 ;SINT23
sint24: .space 4*16 ;SINT24
sint
您可能关注的文档
最近下载
- (已压缩)关于建筑设计防火的原则规定(1960)(OCR).pdf VIP
- 离子注入+最详细的课件.ppt
- 2024美学落地手册方案文本.pdf VIP
- 电力配电网典型设计电缆分册.pdf VIP
- 广东省泄漏检测与修复(LDAR).doc VIP
- 土木工程测量PPT课件(共14章)项目2 水准测量.ppt VIP
- 铁塔换电管理系统操作手册.docx VIP
- 重难点03完全平方公式重难点题型专项训练(9大题型+18道培优题提分练)-【新课标】2024-2025学年七年级数学下册[含答案].pdf VIP
- 统编版小学语文二年级上册课文《纸船和风筝》教学设计.docx VIP
- 危急值报告制度.ppt VIP
文档评论(0)