实验三:外部中断实验.docVIP

  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文档。上传文档
查看更多
实验三:外部中断实验

实验三:外部中断实验 【实验目的】 掌握lpc2000系列arm处理器的中断处理工作原理 掌握外部中断的寄存器设置 掌握中断服务程序的在Keil下的编程方法 【实验内容】 借助于外部中断,将按键动作进行累加计数,用4个led指示当前按键的次数。 【实验原理】 LPC2000系列可以管理最多32个外部中断,并将这些中断源最终通过irq或者fiq提交给ARM核进行处理。外部中断也在管理之中,通过设置相应的外部中断寄存器,可以对外部按键的输入进行中断处理。 VIC的中断处理通道和相应的寄存器管理如下图 具体的寄存器功能请参照教材,VIC一章节。 外部中断寄存器见下图 根据需要可以设置外部中断的方式和极性,寄存器的具体描述参照教材。 【实验步骤】 按照下图设计一个可以进行外部中断实验的电路。按键要接到EINT0~3的任一引脚上。下图以EINT0.0为例: 用Keil建立一个工程,命名为eintled,并添加一个main.c文件到项目中。具体步骤参照实验一和实验二。 主要函数功能如下: static char led 0; void eint0_isr __irq IOCLR 0xff; IOSET led; led ++; while EXTINT 0x01 // EXTINT 0x01; /* 清除EINT0中断标志 */ VICVectAddr 0; /* 通知VIC中断处理结束 */ int main //设定相应的引脚,P0.0~P0.3为GPIO输出;P0.16设置为EINT0功能 PINSEL0 0; IODIR | 0xf; PINSEL1 | 1 ; //设置外部中断触发方式 EXTMODE EXTMODE | 0x01; // 初始化EINT0为下降沿中断 EXTPOLAR EXTPOLAR 0x0E; // EXTINT 0x0F; //清除所有外部中断标志 //设置VIC,将外部中断0分配到向量irq0 VICIntSelect 0; //将所有的中断源都分配给irq VICVectAddr0 unsigned long eint0_isr; VICVectCntl0 0x20 | 14 ; //使能irq0给外部中断0 VICIntEnable 1 14;//外部中断0的VIC通道号是14 while 1 ; //让程序停在这里,等待中断 return 0; 仔细分析上述代码,用keil编译后在proteus中运行,记录运行结果。 【思考与分析】 1. 分析此中断服务处理程序,还缺少哪些部分?试着补全并验证(可以试着去除等待按键那条语句“while EXTINT 0x01 ” 和对应的“ ”)。 2.若在硬件电路设计时候将按键变成按下产生高电平,抬起为低电平。试着用上升沿产生中断,重试此程序。 3.若要使用向量irq15来完成此功能,如何修改代码? 4.若要在VIC设置中,将irq0的是能寄存器中的使能位(即:VICVectCntl0 的D5位)清0,此中断服务程序还会执行吗?怎么样才会执行?写出让led出现上述程序相同的现象的程序。 + FIQ IRQ 中断状态寄存器 VICRawIntr FIQ中断状态寄存器 VICFIQStatus 软件中断清零寄存器 VICSoftIntClear 软件中断使能寄存器 VICSoftInt 中断源 [31:0] 中断使能清零寄存器 VICIntEnClr 中断使能寄存器 VICIntEnable 中断选择寄存器 VICIntSelect FIQ中断信号 IRQ中断状态寄存器 VICIRQStatus 优 先 级 低 高 非向量IRQ 向量IRQ15 向量IRQ0 IRQ中断信号 DefIRQ IRQ15 IRQ0 向量地址寄存器 VICVectAddr 向量地址选择 硬 件 优 先 级 选 择 DefVectAddr VectAddr15 VectAddr0 IRQ15 IRQ0 DefIRQ 向量地址15寄存器 VICVectAddr15 向量IRQ15控制寄存器 VICVectCntl15 中断源 向量IRQ15使能 默认向量地址寄存器 VICDefVectAddr 向量地址0寄存器 VICVectAddr0 向量IRQ0控制寄存器 VICVectCntl0 中断源 向量IRQ0使能

文档评论(0)

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

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

1亿VIP精品文档

相关文档