arm中断编程实验.docxVIP

  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文档。上传文档
查看更多
数字信息技术实验 学 校 学 院 专 业 实验题目 ARM 中断实验编程 小组成员 二Ο一七年三月 一.实验目的 通过本次实验了解中断是什么以及学会如何进行中断编程。 二.实验要求 基础实验:利用 Exynos4412 的 K1、 K2 这 2 个 I/O 引脚的中断模式,分别点亮LED1和LED2, 扩展实验:配置K3为中断模式,点亮LED3. 三.实验仪器 1、计算机 2、USB转9脚串口线(通过USB与计算机连接,母头与实验平台连接) 3、Exynos4412处理器开发与应用实验平台 4、BL-JTAG 仿真器(通过USB与计算机连接, JTAG口与实验平台连接) 5、电源线(与实验平台相连接的交流电源线) 四.实验原理 1.电路原理 K1、 K2、K3 分别与 GPX1_1、 GPX1_2、 GPX3_2相连, 在没有按下按键时这些引脚上一直处于高电平,当按键按下时产生下降沿触发中断。 EXYNOS4412 中断实验电路图 实验箱上按键位置 编程流程 去除 GPX1_2、 GPX1_2, GPX3_2 内部上下拉属性,配置为中断模式 。 GPIO 控制器中关闭屏蔽、使能中断; 在 GIC 中断控制器中使能中断; 设置中断优先级; 使能 GIC; 选择中断发送给 CPU0; 等待中断产生,然后进入中断处理函数; 清除中断源。 五.实验内容 连接好开发板与计算机之间的串口线和 BL-JTAG 仿真器 连接好开发板的交流电源线 接下来利用计算机演示集成开发环境的使用,以及LED灯的控制实验软硬件仿真流程,打开Eclipse,导入工程Key_Int,进行相应代码编写,编译,配置相关debug信息,装载程序,按下KEY1,KEY2,KEY3在putty串口终上查看相应的信息输出以及可以看到LED1和LED2和LED3亮灭情况。 实验步骤 根据实验一步骤,连接仿真器、串口线,打开Eclipse,导入工程Key_Int,进行相应代码编写,编译,配置相关debug信息,装载程序,按下KEY1,KEY2,在putty串口终端上查看相应的信息输出以及可以看到LED1和LED1亮灭情况。 修改代码,完成扩展实验 K3中断签需要配置的寄存器 GPX3.PUD 4-5位设为0 GPX3.CON 8-11位设为0XF EXT_INT43_CON 8-11位设置为0x2 EXT_INT43_MASK 第2位设为0 ICDISER.ICDISER2 第0位设为1 K3中断服务程序中需要配置的寄存器 GPX1.DAT 第3位和第5位为0 GPL1.DAT 第1位为1 EXT_INT43_PEND 第2位设为1 ICDICPR.ICDICPR2 第0位设为0 七.实验结果 可以看到按下K1对应的按键第一颗灯亮第二颗和第三颗灯灭 可以看到按下K2对应的按键第二颗灯亮第一颗和第三颗灯灭 可以看到按下K3对应的按键第三颗灯亮第一颗和第二颗灯灭 代码分析(主要对LED3的代码分析,LED1与LED2的编写基本类似): //Interrupt GPX3_2: Turn off LED1, turn off LED2, turn on LED3 //此处编写LED相关处理 GPL1.DAT |= 0x1 1; //turn on LED3 GPX1.DAT = ~(0x1 5); GPX1.DAT = ~(0x1 3);//Turn off LED1, turn off LED2 EXT_INT43_PEND |= 0x1 2; //EXT_INT43_PEND 第2位设为1 ICDICPR.ICDICPR2 = ~(0x1 0);//ICDICPR.ICDICPR2 第0位设为0 printf(PWRON3(GPX1_1:XEINT09) IRQ interrupt !! Turn on LED1, turn off LED2, turn off LED3\n); //Clear Pend //此处清除K3对应的中断标志位 break; 这段代码

文档评论(0)

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

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

1亿VIP精品文档

相关文档