欢迎来到天天文库
浏览记录
ID:15693881
大小:66.00 KB
页数:3页
时间:2018-08-04
《实验二 外部中断实验(南大)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南昌大学实验报告学生姓名:学号:专业班级:卓越通信班实验类型:□验证□综合设计□创新实验日期:201303实验成绩:实验二外部中断实验一.实验目的掌握S3C2410A处理器外部中断的引脚功能设置;掌握中断初始化以及中断服务函数的编写。二.实验设备硬件:PC机1台MagicARM2410教学实验开发平台1台软件:Windows98/2000/XP操作系统ADS1.2集成开发环境三.实验内容设置GPF4引脚为外部中断EINT4功能,下降沿触发模式。初始化S3C2410A中断控制器,设置EINT4为IRQ中断,并使
2、能中断允许。初始化完成后,等待外部中断产生。中断服务程序里负责把LED1控制口输出信号取反,清除中断标志后退出中断。四.实验原理a独立按键KEY1电路使用了GPF4口,设置GPFCON寄存器可以选择GPF4引脚为外部中断EINT4功能,此时通过按下KEY1键即可触发外部中断;b对于S3C2410A的众多中断源,通过设置INTMOD寄存器可将它们分为IRQ中断或FIQ中断,一般只设置一个中断源为FIQ中断。对于多个IRQ中断,通过PRIORITY寄存器可以设置中断的优先级,一般将其设置为0使用默认固定的优先级即
3、可;c设置INTMSK寄存器使能某个中断源的中断允许,有些中断源还需要设置SUBMASK寄存器使能(比如UART的发送中断和接收中断);d对于外部中断EINT4~EINT23,由于它们在S3C2410A的中断控制器中不是独立中断源(EINT4~EINT7共用一个中断源,EINT8~EINT23共用另一个中断源),所以还需要设置EINTMASK寄存器来使能某一个外部中断;e由于S3C2410A的中断控制器不是向量中断控制器,即处理器硬件不能自动获取对应于中断源的中断服务程序地址,所以在IRQ中断服务程序中要通过
4、中断标志寄存器INTPND来获得对应的中断服务程序地址(参考ARMExecutableImageforDeviceARM2410工程模板的Target.c文件,其中的IRQ_Exception函数)。f在中断服务程序中,退出中断之前要清除中断标志,即对SRCPND和INTPND寄存器相应位写1,先清除SRCPND寄存器,再清除INTPND寄存器。对于外部中断EINT4~EINT23中断,要最先清除EINTPEND寄存器中的中断标志。实验电路图五.实验步骤(1)启动ADS1.2,使用ARMExecutableI
5、mageforDeviceARM2410工程模板建立一个工程EINT。(2)在工程src组中的main.c中编写实验代码。(3)选用DebugRel生成目标,然后编译链接工程。(4)将MagicARM2410实验箱上的启动方式选择跳线JP8短接,然后按RST键复位系统。(5)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。(6)在中断服务程序中设置断点,全速运行程序,按下/释放KEY1按键,使EINT4为低/高电平(产生中断)。(7)取消中断服务程序中有断点,全速运行程序,按下/释放
6、KEY1按键,观察LED1灯的变化。六.实验参考程序(略)七.实验现象通过中断程序设置可以控制LED灯的亮灭。按下/释放KEY1按键,使EINT4为低/高电平(产生中断),按下/释放KEY1按键,LED1灯的灭了八.思考题:EINT4与EINT0的中断设置和中断标志清除有什么异同?答:对于外部中断EINT0,它在S3C2410A的中断控制器中是独立中断源,为了使中断控制器能够接收中断请求,只需在在启动代码中将PSR的F位或I位设置为0,同时将中断屏蔽寄存器(INTMASK)中的相应位设置为0;但对于外部中断E
7、INT4,由于它在S3C2410A的中断控制器中不是独立中断源(EINT4~EINT7共用一个中断源),满足上述设置外还需要设置EINTMASK寄存器来使能某一个外部中断(这里是EINT4)。而在中断标志清除中,二者都要在退出中断之前要清除中断标志,即对SRCPND和INTPND寄存器相应位写1,先清除SRCPND寄存器,再清除INTPND寄存器。对于外部中断EINT4中断,要最先清除EINTPEND寄存器中的中断标志。
此文档下载收益归作者所有