【ARM】2410裸机系列-中断处理
2013-06-27 17:38
197 查看
目的
为了更好地掌握S3C2410中断的原理及中断程序的编写。
内容利用S3C2410的外部中断0和外部中断1实现两个按键功能
原理
本次选择的是外部中断EXTINT0和EXTINT11。中断的产生分别来自按钮SB1202和SB1203,当按钮按下时,EXTINT0(对应管脚GPF0)或EXTINT11(对应管脚GPG3)和地连接,输入低电平,从而向CPU发出中断请求。
当CPU受理后,进入相应的中断服务程序,通过超级终端的主窗口显示当前进入的中断号。
程序
View Code
为了更好地掌握S3C2410中断的原理及中断程序的编写。
内容利用S3C2410的外部中断0和外部中断1实现两个按键功能
原理
本次选择的是外部中断EXTINT0和EXTINT11。中断的产生分别来自按钮SB1202和SB1203,当按钮按下时,EXTINT0(对应管脚GPF0)或EXTINT11(对应管脚GPG3)和地连接,输入低电平,从而向CPU发出中断请求。
当CPU受理后,进入相应的中断服务程序,通过超级终端的主窗口显示当前进入的中断号。
程序
#include "2410addr.h"//这头文件找了好久啊,mdk里面没有,后来在一个实例中提取出来的 #include "2410lib.h" void __irq int0_int(void) //外部中断0处理函数 { uart_printf("EINT0 interrupt occurred. \n"); ClearPending(BIT_EINT0); //清除中断源 } void __irq int11_int(void) //外部中断11处理函数 { if(rEINTPEND==(1<<11)) //判断外部中断挂起寄存器,确定是否外部中断11 { uart_printf("EINT11 interrupt occurred. \n"); rEINTPEND=(1<<11); //清除中断挂起寄存器 } ClearPending(BIT_EINT8_23); } void int_init(void) //中断初始化 { rGPFCON=(rGPFCON & ~(3<<0) | (0x2<<0)); //将CPFO配置为EINT0 rGPGCON=(rGPGCON & ~(3<<6) | (0x2<<6)); //将CPF3配置为EINT11 pISR_EINT0=(UINT32T)int0_int; //注册中断处理函数 pISR_EINT8_23=(UINT32T)int11_int; //注册处理中断11处理函数,EINT8~23共用此函数,需要在处理函数中加入对源中断的判断 rEINTPEND=0xffffff; //清除所有外部中断挂起状态 rSRCPND=BIT_EINT0 | BIT_EINT8_23; //清除源的挂起状态 rINTPND=BIT_EINT0 | BIT_EINT8_23; //清除挂起状态 rEXTINT0=(rEXTINT0 & ~(7<<0)) | (0x2<<0); //EINT0下降沿触发 rEXTINT1=(rEXTINT1 & ~(7<<0)) | (0x2<<12); //EINT1Ï下降沿触发 rEINTMASK &= ~(1<<11); //打开外部中断11 rINTMSK &= ~(BIT_EINT0 | BIT_EINT8_23); //打开INTMSK中的中断0和中断8~23 } int main() { int_init(); while(1); } //#define ClearPending(bit) {rSRCPND=bit;rINTPND=rINTPND;} //写入错误的数据 //清除中断源,注意清除的顺序,要从源头开始清除
View Code
相关文章推荐
- ARM中断学习一/[友善2440test中的中断处理部分]
- GNU ARM汇编--(四)中断汇编之非嵌套中断处理
- ARM中断处理过程
- ARM Linux对中断的处理--相关数据结构
- arm 中断配置以及处理的源码分析
- 异常和中断处理 ARM系统开发者指南 Chapter9-1
- ARM第十二天(中断处理)
- ARM 中断处理过程
- ARM中断处理过程
- Davinci DM6446 的ARM中断处理流程(DM644X)
- ARM对中断IRQ的处理
- 【ARM】s3c2410中断处理实例
- 为什么ARM的frq中断的处理速度比较快
- GNU ARM汇编--(五)中断汇编之嵌套中断处理
- ARM中断分析之二:裸机下面的中断处理
- ARM中断处理_S3C2440
- ARM中断学习一/[友善2440test中的中断处理部分]
- ARM:ARM中断异常的处理流程
- ARM中断异常处理的返回
- 析达芬奇DM644x平台ARM中断处理流程