- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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使能
您可能关注的文档
最近下载
- 1.1_犬的起源、进化与特征.ppt VIP
- 2024高考语文考前精刷卷专题十四文学类文本阅读散文.docx VIP
- 大学语文之诗经电子教案.doc VIP
- 高校生活超市和24小时便利店租赁经营投标常用方案(最全).doc VIP
- 15J001 围墙大门图集标准.docx VIP
- 双向搅拌桩加固高速公路软土地基现场对比试验研究.pdf VIP
- 铁道概论:铁路信号和通信PPT教学课件.pptx VIP
- 《医学微生物学》课件——细菌的形态与结构.ppt VIP
- 贵州丹寨金汞矿日处理500吨(一期250吨)金汞原矿浮选生产线技改项目环境影响报告书.pdf VIP
- 大一新生班干部竞选演讲稿PPT.pptx VIP
文档评论(0)