DSP外部中断实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息工程系实验报告
课程名称:现代DSP技术
成绩:
实验项目名称:实验四外部中断实验实验时间:2011-11-22
指导教师(签名):班级:&^^%%$ 姓名:*&% 学号:*****
一、实验目的
1、掌握中断技术,学会对外部中断的处理方法;
2、掌握中断对程序流程的控制,理解DSP对中断的响应时序。
二、实验设备
计算机,CCS 2.0版软件,DSP仿真器,实验箱。
三、实验原理
1. 在DSP中,中断是由硬件或软件产生的驱动信号,要求DSP暂停执行的程序,转到中断
服务子程序的执行。
2. 对于中断程序的设计,一般采用以下步骤:
(1)将中断向量指针IPTR指向中断矢量所在的段,在段中偏移量为中断序号四倍的地指
出写一个跳转到中断服务子程序的跳转指令。
(2)置位ST1中的INTM位,禁止中断,然后清除所以未执行完的中断。
(3)打开相应的中断,复位ST1中的INTM位,使能中断。
(4)写一段等待程序(一般用无效的死循环),等待中断事件的发生。
四、实验步骤与内容
1、拨码开关:SW2
SW2备注
1 2 3 4 码位
ON ON OFF ON 单脉冲产生的中断给CPU2的中断INT2
2、关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;启动CCS 2.0,在Project→Open
菜单打开exp05_cpu2目录下面的工程文件“exp05.pjt”。用下拉菜单中Project-->Open,打
开“exp05_cpu2\ exp05.pjt”,双击“Source”,可查看源程序。在File→Load Program菜单下
加载exp05_cpu2\debug目录下的exp05.out文件。
a)运行实验程序;
b)每按一次“单脉冲输出”按键,观察LED1~LED8灯变化;每按一次“单脉冲输出”按
键则显示灭亮灭亮灭亮灭亮。如下图所示
c)单击“Halt”暂停程序运行,反复按开关“单脉冲输出”,观察LED1~LED8灯变化。
显示不会改变。
五、思考与练习:
1、DSP中断响应的步骤是什么?
(1)将中断向量指针IPTR指向中断矢量所在的段,在段中偏移量为中断序号四倍)的地指出写一个跳转到中断服务子程序的跳转指令。
(2)置位ST1中的INTM位,禁止中断,然后清除所以未执行完的中断。
(3)打开相应的中断,。复位ST1中的INTM位,使能中断。
(4)写一段等待程序(一般用无效的死循环),等待中断事件的发生。
2、编写中断服务子程序,使LED灯能够显示中断次数,即按键次数。
(1)更改全局变量定义
UINT16 show = 0x00;
(2)更改中断2中断子程序
interrupt void ExtInt2()
{
show++;
return;
}
通过编译程序生成的.out文件,再经过加载,run后,分别按一次和八次“单脉冲输出”开关,实验箱上LED灯的情况如下所示:
按一次按八次
六、实验心得
要使用外部中断要从两方面进行准备:首先,在硬件上必须将中断信号引到DSP的外部中断引脚上;其次是在软件上的配置:1.初始外部中断寄存器;2使能cpu INT1中断;
3.编写中断服务程序;4将中断服务程序入口地址赋给中断向量表。
附录
实验部分代码如下:
UINT16 show = 0x00aa; //全局变量定义
interrupt void ExtInt2() //中断2中断子程序
{
// *(unsigned int*)IFR=0xFFFF; //清除所有中断标志,"写1清0" ,这个语句可以省略,响应中断自动清除中断标志
show=(~show)&0x00ff; //显示值取反
return;
}