实验五 定时器中断方式实验.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应用技术 * * 实验五 定时器中断方式实验 一、实验目的 二、实验原理 三、实验内容 四、实验思考题? 一、实验目的 1.掌握5402 DSP中断和中断的处理过程; 2. 掌握5402 DSP中断向量地址的修改; 3. 学习中断初始化编写方法 4. 学习中断向量表的编写 1.DSP中断 2.中断处理过程 3.中断向量地址的重新安排 4.DSP定时器中断的初始化方法 5.中断向量表的编写 二、实验原理 中断是由硬件或软件驱动的信号,使DSP暂停主程序而执行中断服务程序(ISR)。 软件驱动:来自程序指令(由INTR、TRAP或RESET产生) 硬件驱动:来自外部硬件中断; 或片上外设的内部硬件中断。 当多个硬件中断同时触发时,DSP按照优先级别响应。 1.DSP中断 中断按可屏蔽性分类: 第一类:可屏蔽性中断,可以用软件进行屏蔽。 C54DSP最多支持16个用户可屏蔽中断,见IMR内容。 第二类:非屏蔽性中断。 包括所有的软件中断或两个外部硬件中断RS#和NMI#(这两中断也可以使用软件进行中断) 1.DSP中断(续) IFR和IMR都是MMR寄存器。 IFR:当出现中断时,IFR相应中断标志位置1。 有4中情况中断标志位清0: (1)DSP复位(RS#为低电平); (2)中断得到处理; (3)将1写如IFR中的相应位(则相应位变成0),中断没有处理完就被清除。 (4)利用适当的中断号执行INTR指令,相应的中断 标志清0。 中断标志寄存器IFR和中断屏蔽寄存器IMR IMR:屏蔽外部或内部中断。 如果ST1中的INTM=0,IMR寄存器某位为1,就开放相应的中断。(INTM:中断模式,屏蔽或使能所有中断,INTM=0所有非屏蔽中断使能,INTM=1所有可屏蔽中断无效) 中断标志寄存器IFR和中断屏蔽寄存器IMR IFR和IMR寄存器位定义 详见:TMS320C54x DSP Reference Set:CPU and Peripherals SPRU131G.pdf 54x DSP处理中断分3个阶段: 第一个阶段:接受中断请求 第二个阶段:响应中断 第三个阶段:执行中断服务程序 2.中断处理的过程:三个阶段 (1)当硬件或软件指令请求中断时,IFR中的相应位置1 (2)硬件中断名称见IFR,软件中断:INTR、TRAP和RESET。 INTR K:可用来执行任何一个中断服务程序。 K是中断向量位置,属不可屏蔽中断不受ST1的INTM影响。CPU响应INTR时,INTM置1关闭其他可屏蔽中断。 TRAP K:区别于INTR在于,不影响INTM。 RESET:不可屏蔽,影响ST0和ST1,不影响PMST。 第一个阶段:接受中断请求 对于软件中断或其他非屏蔽中断 ,CPU立即响应。 对于可屏蔽中断,只有满足如下条件才能响应: (1)优先级最高(同时出现的中断) (2)ST1中INTM=0(所有非屏蔽中断使能) (3)IMR中相应位=1(开放相应的中断) CPU相应中断时,PC转向适当的地址取出中断向量,并发出中断响应信号IACK#,清除相应的中断标志。 第二个阶段:响应中断 响应中断后,CPU执行如下动作: (1)入栈。将PC值(返回地址)存储到数据存储器堆栈的栈顶; (2)将中断向量的地址加载到PC中; (3)在中断向量地址上取指,执行分支指令转到中断服务程序,并执行中断服务程序; (4)出栈。中断返回,从堆栈中弹出返回地址到PC。 (5)继续执行被中断了的程序。 C语言中断服务程序中(1)~(3)由C编译器自动完成。 第三个阶段:执行中断服务程序 中断操作的流程图 本实验中的C语言编写定时器中断服务程序: 2.中断处理的过程(续) ?interrupt void timer0_isr(void) { if (xf_flag) { asm( SSBX XF); xf_flag=0; } { asm( RSBX XF); xf_flag=1; }? 2.中断处理的过程(续) count++; if (count= =50) //50*10=500ms { board_led_toggle(BRD_LED0); //LED0 flash every 500ms count=0; } } 2.中断处理的过程(续) 将上述C程序编写的中断服务程序进行反汇编,可以看得出,在中断服务程序中加入了22个MMR寄存器的保存(压栈)和恢复(出栈)指令。其中包括状态寄存器ST1。 DSP复位后,中断向量地址是可以更改的。 54x中断向

文档评论(0)

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

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

1亿VIP精品文档

相关文档