嵌入式系统实验2中断实验_第1页
嵌入式系统实验2中断实验_第2页
嵌入式系统实验2中断实验_第3页
嵌入式系统实验2中断实验_第4页
嵌入式系统实验2中断实验_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中南大学嵌入式系统实验(二)中断实验学院:专业班级: 名:中断实验实验目的熟悉arm开发板中断原理。并产生中断。了解快速中断和普通中断。编写嵌套中断实验。实验器材PC机一台,周立功开发板一块实验原理EasyARM2103开发板提供了4个绿色发光二极管用作显示,电路如图1.1所示。显示电路采用 了灌电流的方式来驱动发光二极管,由于微控制器LPC2103 I/O 口提供的灌电流大于其拉电 流,采用此驱动方式可以保证二极管发光的亮度。DP3V3LED1R747QLED灯显示LED2R3470R9JP412O3456O78OOP0.17P0.1SP0J9HEADER 4X2LED3R10470M-LE

2、Dd1.1 Led电路原理实验原理ARM体系的CPU有7种工作模式,可以通过软件来进行模式切换,或者发生各类中断、 异常进行相应模式。CPU可以识别两种类型中断,正常中断(IRQ)和快速响应中断(FIQ) 状态寄存器的PSR中F和R位决定是中断的启闭。为了使能中断,必须将PSR中F或R位清 零,并且中断屏蔽寄存器相应位也要清零。ARM中断分为子中断源和一般中断源,子中断源多了两个寄存器SUBRCPN (标识子中断 源是否发生)INTSUBMSK (屏蔽子中断源)。ARM中断发生过程如下:.如果为子中断源,则SUBSRCPND寄存器相应位置1,然后根据子中断源屏蔽寄存 器(INTSUBMSK)的

3、设置来判断该中断是否被屏蔽,如未屏蔽,则在SRCPND寄存器相应位 置1。.如果为非子中断则直接在SRCPND寄存器相应位置1。如果INTMOD寄存器中该中断被设置为FIQ快速中断(相应位置1),即该中断立 即执行。如不是,则判断INTMSK寄存器中该中断是否被屏蔽,如未屏蔽,则进入中断优先 仲裁器进行中断优先设置(PRIORITY寄存器)经过中断优先仲裁后,最高优先级的中断在INTPND寄存器中相应位置1(同一时间, 此寄存器只有一位置1),INTOFFSET寄存器值用来表示INTPND寄存器置1位(即INTPND 寄存器中位x为1时,INTOFFSET寄存器值为x,可以用它确定是什么中断。

4、要启用一个中断,我们主要设置以下寄存器:1、INTMOD设置是否为快速中断(一个系统中只能有一个快速中断,默认没有快速中断, 如不使用,可以不用设置)2、INTMSK设置该中断是否被屏蔽3、PRIORITY设置该中断的优先级如为子中断源,还需设置4、INTSUBMSK设置子中断源是否被屏蔽如果外接中断,还需设置以下寄存器:5、GPXCON设置相应引脚为中断输入6、EINTMASK设置外部中断输入使能7、EXTINT0-EXTINT2设置外部引脚输入中断电平信号类型其中,为外部中断输入时,EINTPEND寄存器用于保存是否有中断发生EINTMASK、EINTPEND 寄存器3 0位保留取值为0。

5、中断信号清除清除中断时在EINTPEND、INTPND、SUBSRCPND及SRCPND寄存器该位写入1令此位为0, 写入0效果。其清除过程为EINTPEND、SUBSRCPND、SRCPND、INTPND,否则,将导致无 限次中断。实验内容及步骤下面以GPIO的中断测试程序为例,熟悉EasyJTAG-H件的使用方法,程序功能设计 为控制单路LED闪烁,硬件电路如图1.1所示。打开示例工程。示例工程路径:配套光盘内容-光盘内容v1.00-3.EasyARM2103安 装手册-GPIO Test,将此文件夹复制到其它目录下打开,要求存放目录必须无中 文路径。打开文件夹后,建议用户先删掉“GPIO

6、_Test_Data”文件夹,然后双击打 开“ GPIO Test.mcp ”文件,即打开示例工程。点击“ user ”文件夹,打开main.c文件,见到示例代码编译连接工程。项目目标栏处选择DebugInFlash模式,然后编译连接工程。仿真调试。将计算机并口与EasyJTAG-H仿真器相连,然后再将EasyJTAG-H仿真器 的JTAG接口连接到UEasyARM2103目标板上,打开H-JTAG,检测到芯片内核信息后, 选择Auto Download选项,此时会自动启动H-Flasher软件,选择目标芯片的型号, 将当前的配置信息保存起来,建议将配置信息保存到安装路径下的Hconfig文件

7、夹 内。设置完成后,关闭H-JTAG Server和H-Flasher (注意:不能使用Exit项关闭)。启 动AXD,打开【Opt ions】- LConfigure Target.】,弹出Choose Target窗口, 点击“ ADD ”添加仿真器的驱动程序,在添加文件窗口选择如D:Program FilesH-JTAG目录下的H-JTAG .dll,点击“打开”即可。为实现嵌套中断,修改main.c函数,重复上述步骤。在AXD环境点击运行,即可看到主程序led亮。通过中断按键,使其他led灯亮。附源代码如下:#include config.h”#define LED 1 17*个*个*

8、个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个* Function name:Eint0IRQ* Descriptions:外部中断0服务程序* input parameters:无* ouput parameters:无* Returned value:无 个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个*/void _irq Eint0IRQ(void) TOC o 1-5 h z /*进入中断取反LED*/if (IO0PIN & (1 17) = 0) IO0SET =

9、 1 17;/*熄灭发光二极管*/else IO0CLR = 1 17;/*点亮发光二极管*/while(IO0PIN& (1 16) =0);/* 等待按键松开*/EXTINT = 0 x01;/*清中断标志*/VICVectAddr = 0 x00;/*通知VIC中断处理结束*/个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个* Function name:main* Descriptions:P0.16低电平触发外部中断主函数* input parameters:无* ouput para

10、meters:无* Returned value:无 个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个*int main (void)PINSEL1 = PINSEL1 & (0 x03); TOC o 1-5 h z PINSEL1 = PINSEL1 | 0 x01;/*设置P0.16为外部中断0管脚*/PINSEL1= PINSEL1& (0 x03 2);/* 设置P0.17为GPIO功能*/IO0DIR = LED;/*设置P0.17为输出*/IO0SET = LED;/*设置输出为高电平*/IRQEnable();/*IRQ中断使能*/EXTMODE = 0 x00;/*设置外部中断为低电平触发 */EXTPOLAR = 0 x00;VICIntSelect = 0 14;/*选择EINT0为FI Q中断*/VICVe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论