外部中断控制

上传人:我** 文档编号:111601220 上传时间:2019-11-02 格式:DOC 页数:5 大小:143.50KB
返回 下载 相关 举报
外部中断控制_第1页
第1页 / 共5页
外部中断控制_第2页
第2页 / 共5页
外部中断控制_第3页
第3页 / 共5页
外部中断控制_第4页
第4页 / 共5页
外部中断控制_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《外部中断控制》由会员分享,可在线阅读,更多相关《外部中断控制(5页珍藏版)》请在金锄头文库上搜索。

1、实验12 外部中断控制1. 实验目的 了解外部中断原理、外部中断响应方式及对外部中断的设置。2. 实验原理:TS201有4个外部中断输入引脚,IRQ0IRQ3,用于处理器外部接口对程序的控制。这4个中断源可设置为边沿触发,也可设置为电平触发,通过对SQCTL寄存器编程实现,本实验使用边沿触发。ADSPTS201 EZ-KIT LITE板上,DSP A的IRQ0引脚和开关IRQ_A相连,当按下IRQ_A时,IRQ0输入为1,若程序设置了IRQ0中断,则会响应此中断,程序跳转至相应的中断服务程序执行。本实验的中断服务程序将实现点亮LED4和LED6的功能,以表示系统已经对外部中断产生了响应。3相关

2、寄存器说明15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 01中断控制寄存器(INTCTL) 0000000000000000TMR0R (4) Timer0运行控制位,设为1则Timer0开始运行;TMR1R (5) Timer1运行控制位,设为1则Timer1开始运行;IRQx_EDGE(03) 外部中断触发类型,0=边沿触发(复位后默认值),1=电平触发; 631位保留 =0 。2中断屏蔽寄存器(IMASK) IMASK是一个64位寄存器,由IMASKH和IMASKL组成,当IMASK中某位被设置成1的时,那么将响应这个位所对应的中断。IRQ0中断对应在IMASK

3、H中的第9位,所以我们要取消对IRQ0中断的屏蔽,使能IRQ0中断,可以通过如下指令实现:xr0=0x200; / 0x200= B 0010 0000 0000 IMASKH=xr0;xr0=0;IMASKL=0也可以直接使用如下指令实现,原理是一样的,下面的方法更为直观一些。xr0=INT_IRQ0; /INT_IRQ0在头文件中的定义的值为B0010 0000 0000IMASKH=xr0;3. 实验例程:本程序用汇编语言编写,包括主函数_start,循环等待函数_Wait_For_Interrupt和中断服务程序_IRQ0_ISR。_start实现功能:使能Flag2/3为输出,使能I

4、RQ0中断,设置中断服务程序入口;_Wait_For_Interrupt实现功能:熄灭LED,等待外部中断IRQ0发生;_IRQ0_ISR实现功能:外部中断发生后点亮LED4和LED6。/*外部中断IRQ0控制,使用LED4和LED6状态表示对中断的响应*/#include .section program;_start: xr0=0; FLAGREG=xr0; FLAGREGST=FLAGREG_FLAG2_EN|FLAGREG_FLAG3_EN; /*以下设置中断服务程序及使能外部中断*/j0=_IRQ0_ISR; IVIRQ0=j0; xr0=INT_IRQ0; IMASKH=xr0;/

5、外部中断IRQ0使能 SQCTLST=SQCTL_GIE; /全局中断使能 _Wait_For_Interrupt: .align_code 4; FLAGREGCL=(FLAGREG_FLAG2_OUT); FLAGREGCL=(FLAGREG_FLAG3_OUT); nop;nop;nop;idle; /无限等待直到中断发生,然后跳至中断程序_IRQ0_ISR执行jump _Wait_For_Interrupt;_IRQ0_ISR: xr0=FLAGREG_FLAG2_OUT|FLAGREG_FLAG3_OUT; FLAGREGST=xr0; lc0=0x4000000; .align_c

6、ode 4;wait1: if nlc0e,jump wait1(np);nop;nop;nop; rti(np)(abs); _start.end:4. 实验步骤1硬件连接检查EZ-KIT板各SW设置是否正确,如下图;用USB将PC与EZ-KIT板连接;连接EZ-KIT板电源线,LED1(POWER)点亮、LED8(RESET)点亮,EZ-KIT板开始自动复位,复位完成后LED8熄灭,LED3点亮(USB MONITOR,注意此LED实际位置在USB上方),则表示EZ-KIT板与PC已经正常连接,可以运行VisualDSP+。2启动程序运行VisualDSP+进入主程序界面,若当前Sessi

7、on为ADSP-TS201S EZ-KIT Lite Via Debug Agent,则无需更改Session,否则需要更改Session为ADSP-TS201S EZ-KIT Lite Via Debug Agent,操作如下: 也可以通过如下方法直接选择所需要的Session:运行VisualDSP+时按住Ctrl键,此时不会直接进入主程序界面,而是弹出Session List窗口,双击选择ADSP-TS201S EZ-KIT Lite Via Debug Agent或单击Activate将进入程序主界面。若此时程序自动打开一个(或多个)工程,先将其关闭,通过以下两种方式实现: 3编译程序

8、新建工程文件,自定义文件名,然后将 .CodeIRQ下的IRQ.asm源文件导入工程中的Source Files内;建立链接文件(如下图),一切选项保持默认,完成链接文件建立。选择Project菜单下的Build project 选项进行编译,若有错误则双击错误处即可找到相应的错误程序行进行修改,直到无错误产生。成功编译后程序会弹出如下一个窗口,我们需要将.dxe文件剪切至DSP A处,如右图,然后确认。注:dxe文件为编译后形成的可执行文件,导入dxe文件实际上就是把相应的可执行文件写入EZ-KIT LITE板中。 点击Debug菜单下的RUN选项开始运行(或直接按F5),点击EZ-KIT LITE板上的IRQ_A按键,会看到LED4和LED6同时点亮。5. 实验要求1按照实验步骤完成实验,根据相应程序思考如何通过外部中断控制LED;2修改程序,将lc0值设置为10,重新观察实验现象并解释原因;3与Timer中断对比分析两种中断差异,阐述各自主要特点;4修改程序,当按下IRQ_A时点亮LED4熄灭LED6,不按下IRQ_A时(在没有外部中断时)点亮LED6熄灭LED4;5简述原程序流程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号