ARM11外部中断C语言编程实现总结.doc

ARM11外部中断C语言编程实现总结.doc

ID:57591562

大小:48.50 KB

页数:5页

时间:2020-08-28

ARM11外部中断C语言编程实现总结.doc_第1页
ARM11外部中断C语言编程实现总结.doc_第2页
ARM11外部中断C语言编程实现总结.doc_第3页
ARM11外部中断C语言编程实现总结.doc_第4页
ARM11外部中断C语言编程实现总结.doc_第5页
资源描述:

《ARM11外部中断C语言编程实现总结.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ARM11(3)——外部中断WF2013.1.24最近正在学习ARM11(S3C6410开发板)的外部中断部分,稍有心得,特此总结一些学习笔记,分享出来,献给那些像我一样正在ARM11上裸奔的嵌入式学徒们,同时也希望看到此文的业界前辈多多指教。外部中断基础知识总结:ARM11(S3C6410开发板)共有187根多功能I/O口,其中127根可用于外部中断,而这127个外部中断引脚又被分为十组:EINT0~EINT9,这十组对应VICX(中断矢量寄存器)中0、1、32、33、53五个中断号。十组外部中断和五个中断号之间的对应关系却是略显复杂:EINT0共28

2、根引脚被分为了四部分分别对应了0、1、32、33四个中断号,EINT1~EINT9这9组共99根引脚却只对应了53一个中断号。外部中断逻辑图:矢量寄存器中断代号中断数目中断组引脚名引脚数VIC0028EINT0GPN0~GPN341GPN4~GPN118VIC132GPN12~GPN15GPL8~GPL11833GPM0~GPM4GPL12~GPL1485399EINT1~EINT999外部中断的基本编程思想总结:1、初始化I/O引脚设置——GPX;(1)、必须设置所需引脚为中断模式——GPXCON;(2)、可选性设置上下拉电阻和数据位——GPXPUD、

3、GPXDAT;2、初始化外部中断设置——EINTX;(1)、选择外部中断的触发方式——EINTXCON;(2)、清除外部中断屏蔽——EINTXMASK;(3)、外部中断悬挂给1置0——EINTXPEND;3、初始化总中断设置——VICX;(1)、选择中断模式——VICXINTSELECT;(2)、设置中断函数入口——VICXVECTADDR;(3)、中断使能——VICXINTENABLE;4中断函数出口处设置;(1)、清除当前中断函数记录——VICXADDR;(2)、给1置0外部中断悬挂位——EINTXPEND。程序实例:程序说明:实现按键中断控制LED

4、灯的显示,每按一个键LED会显示一种方案。.c文件代码://引入GPN引脚(外接按键)三个寄存器的地址标号#definerGPNCON(*(volatileunsigned*)(0x7f008830))#definerGPNDAT(*(volatileunsigned*)(0x7f008834))#definerGPNPUD(*(volatileunsigned*)(0x7f008838))//引入GPM引脚(外接LED灯)三个寄存器的地址标号#definerGPMCON(*(volatileunsigned*)(0x7f008820))#definer

5、GPMDAT(*(volatileunsigned*)(0x7f008824))#definerGPMPUD(*(volatileunsigned*)(0x7f008828))//引入外部中断控制寄存器的地址标号#definerEINT0CON0(*(volatileunsigned*)(0x7f008900))#definerEINT0MASK(*(volatileunsigned*)(0x7f008920))#definerEINT0PEND(*(volatileunsigned*)(0x7f008924))//引入总中断控制寄存器的地址标号#def

6、inerVIC0INTSELECT(*(volatileunsigned*)(0x7120000C))#definerVIC1INTSELECT(*(volatileunsigned*)(0x7130000C))#defineVIC0VECTADDR0(*(volatileunsigned*)(0x71200100))#defineVIC0VECTADDR1(*(volatileunsigned*)(0x71200104))#definerVIC0INTENABLE(*(volatileunsigned*)(0x71200010))#definerVIC

7、0ADDR(*(volatileunsigned*)(0x71200f00))#definerVIC1ADDR(*(volatileunsigned*)(0x71300f00))intkeyva=0;//定义全局变量keyva,用于记录键值intwait(inttm)//延时函数{inti,j;for(i=0;i

8、(1<<0)

9、(1<<4)

10、(1<<8)

11、(1<<

12、12);rGPMPUD=0x00;rGPMDAT=rGPMDAT&0x00;}v

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。