DSP 中断系统与定时器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP器件及应用 厦门理工学院电子系 陈金西 第四章 中断系统与定时器 中断系统 定时器 §4.1 中断程序的编写 §4.1.1 中断源 54x DSP共有30个中断源,编号分别为0~29。 1、分类 软件中断:采用INTR、TRAP、RESET指令产生的中断,不可屏蔽, SINT17~SINT30 ; 硬件中断:由外部信号或片内外设产生的中断。 硬件中断分类: 外部中断:外部信号触发,INT0~INT3、RS、NMI 内部中断:片内外设产生信号触发,定时器、串行口、HPI、DMA等 不可屏蔽中断:RS(芯片的复位引脚)、NMI(芯片的外中断引脚)、软件中断(SINT17~SINT30)。 可屏蔽中断:剩余的都为可屏蔽中断。 2、中断向量地址 产生 16位的中断向量地址组成:PMST中的IPTR(9位)加上7位的中断向量地址(由中断向量序号(0-31)左移2位生成的)。如: 中断向量的移位 中断向量的低7地址分别为00H、04H~7F,相邻两个相差4个字。 中断向量的高9位是IPTR的值决定的。 当IPTR=1111 1111 1时,中断向量的16位地址为FF80H~FFFFH. 当IPTR=0000 0000 0时,中断向量的16地址为0000H~007FH. 所以,中断向量的地址是可以平移的,只要在程序中改变IPTR的值即可。 复位 复位时IPTR=1111 1111 1,所以RS的中断矢量地址只能为FF80,也就是复位时,DSP一定是从FF80H处开始执行指令。 3、中断源表(向量表) §4.1.2 中断寄存器 1、中断标志寄存器IFR(置1为中断请求) 2、中断屏蔽寄存器IMR §4.1.3 中断程序编写 1、中断的初始化(可屏蔽的硬件中断) 关闭所有中断:设置ST1的INTM=1。 使能相应的中断:设置IMR相应位=1。 对IFR写入1,清除所有中断请求; 开所有中断:设置ST1的INTM=0。(所有中断使能)。 2、中断矢量表 DSP产生中断时,要使得程序能跳转到中断服务子程序执行,则需要在中断矢量处放置一条跳转指令。如: RS B _c_int00 (占2个字) 对于多个中断时,注意地址的对应。如系统中断有:中断号0(RS)、中断号3(SINT18)。跳转指令如下: RS B _c_int00 .word 0,0,0,0,0,0,0,0,0,0 SINT18 B _sint18 .sect .vectors RS B _c_int00 NOP NOP NMI B _NMI_INT NOP NOP SINT2 B _SOFT_INT NOP NOP SINT3 B _SOFT_INT NOP NOP SINT4 B _SOFT_INT NOP NOP SINT5 B _SOFT_INT NOP NOP 3、中断服务程序 void interrupt c_int01() { } §4.1.4 中断程序应用举例 例:请用C语言编程实现TMS320C5402的中断号为4的软件中断程序,并在中断服务子程序里实现5个16位的无符号数相加,并将结果存放在y中,要求写出完整项目所需的所有程序。 1、vectors.asm文件编写 .ref _c_int00, _NMI_INT,_SOFT_INT,_add_INT .sect .vectors RS B _c_int00 NOP NOP NMI B _NMI_INT NOP NOP SINT2 B _SOFT_INT NOP NOP SINT3 B _SOFT_INT NOP NOP SINT4 B _add_INT 2、C程序softint.c编写 Int y; main() {init_5402(); asm(“ INTR 4 ”); //响应4号中断 asm(“ nop ”); } Void interrupt add_int() {y=add(1,2,3,4,5); } Void interrupt NMI_INT() {return;} Void interrupt SOFT_INT() {return;} Int add(int x1,int x2,int x3,int x4,int x5) {int y; y=x1+x2+x3+x4+x5; return y; } 练习: 当INT0引脚出现中断请求时,要求DSP能响应该中断,并使得XF引脚状态取反。 4.2 定时器 C5402内部有2个16位定时器,C5416内部有1个16位定时器,是减计数器。定时器的结构都是一样的,每个定时器有3个控制寄存器,它们是: TIM

文档评论(0)

peace0308 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档