目的

为了更好地掌握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==(<<))  //判断外部中断挂起寄存器,确定是否外部中断11

    {

        uart_printf("EINT11 interrupt occurred. \n");

        rEINTPEND=(<<);  //清除中断挂起寄存器

    }

    ClearPending(BIT_EINT8_23);

 }

 void int_init(void) //中断初始化

 {

    rGPFCON=(rGPFCON & ~(<<) | (0x2<<)); //将CPFO配置为EINT0

    rGPGCON=(rGPGCON & ~(<<) | (0x2<<)); //将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 & ~(<<)) | (0x2<<);   //EINT0下降沿触发

    rEXTINT1=(rEXTINT1 & ~(<<)) | (0x2<<);  //EINT1Ï下降沿触发

    rEINTMASK &= ~(<<);  //打开外部中断11

    rINTMSK &= ~(BIT_EINT0 | BIT_EINT8_23); //打开INTMSK中的中断0和中断8~23

 }

 int main()

 {

    int_init();  

 while();

 }

 //#define ClearPending(bit) {rSRCPND=bit;rINTPND=rINTPND;}

 //写入错误的数据

 //清除中断源,注意清除的顺序,要从源头开始清除

【ARM】2410裸机系列-中断处理的更多相关文章

  1. 【ARM】2410裸机系列-流水灯

    开发环境   1.硬件平台:FS2410(s3c2410) 2.主机:Ubuntu 12.04 LTS LED原理图 LED的GPIO的配置 配置GPFCON寄存器,设置GPF4-7为输出 配置GPF ...

  2. 【ARM】2410裸机系列-ADC数模转换

    开发环境   1.硬件平台:FS2410 2.主机:Ubuntu 12.04 ADC寄存器配置       1.初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式 ...

  3. 【ARM】2410裸机系列-uart串口通信

    开发环境 (1)硬件平台:FS2410 (2)主机:Ubuntu 12.04 FS2410串口的原理图 串口UART寄存器配置   配置TXD0与RXD0(GPH2.GPH3) 设置波特率(UBRDI ...

  4. 【ARM】2410裸机系列-按键查询式控制led

    开发环境   硬件平台:FS2410 主机:Ubuntu 12.04 LTS LED灯原理图 按键原理图 按键的接线资源 KSCAN0 -> GPE11    KSCAN1 -> GPG6 ...

  5. ARM NEON 编程系列2 - 基本指令集

    ARM NEON 编程系列2 - 基本指令集 前言 本系列博文用于介绍ARM CPU下NEON指令优化. 博文github地址:github 相关代码github地址:github NEON指令集 主 ...

  6. ARM NEON编程系列1-导论

    ARM NEON 编程系列1 - 导论 前言 本系列博文用于介绍ARM CPU下NEON指令优化. 博文github地址:github 相关代码github地址:github NEON历史 ARM处理 ...

  7. 【ARM】2440裸机系列-RTC数字时钟

    功能 裸机程序,实现LCD显示数字时钟 主要代码   1)背景绘制 void Brush_ U32 c) { int x,y ; for ( y = 0 ; y < LCD_HEIGHT ; y ...

  8. 【ARM】2440裸机系列-gpio按键控制

    功能 通过GPIO,实现按键1点亮LED1,按键2点亮LED2…… 说明 1)因为2440的按键只涉及行,所以在扫描按键时比2410简单了很多 2)在进行移位操作之前,必须进行数据寄存器的初始化,否则 ...

  9. 【ARM】2440裸机系列-图片显示

    功能 LCD显示字汉字,字符和图片 说明 汉字,字符和图片需要用相应的取模软件得到相应的c文件,然后包含到工程中 主要代码   1)绘制背景 void Brush_ U32 c) { int x,y ...

随机推荐

  1. Axure快速原型教程01--原型说明下载和安装

          Axure是一个快速画原型的工具         什么是原型?         估计进来的朋友应该都清楚,原型通俗来讲,不仅仅是在软件开发中使用,在很多行业中也需要用的,比如服装设计,建筑 ...

  2. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

  3. IDEA导入项目jar包红线, cannot resolve symbol xxxx问题

    简单来说遇到的这种情况2种方式解决了, 不知道还有没有其他原因的. 1.reimport包 2.清缓存重启 针对1方法: a.确实不缺包: 可以先注释掉pom文件中的jar包, 此时idea会提示im ...

  4. jsp空指针异常

    1.Tomcat启动后访问首页报错 显示JSP 空指针异常 这哥们是因为lib下jar包和Tomcat下的jar包冲突,去掉lib下 servlet-api-2.5.jar 以及jsp-api.jar ...

  5. Ubuntu终端命令行播放音乐(mp3)

    有很多在终端命令行播放mp3的工具,有的甚至可以生成播放列表.也只有命令行重度使用者有这个需求,下面我们来看一看这些工具. Sox Sox(Sound eXchange)是操作声音文件的瑞士军刀,它可 ...

  6. 【MyBatis】MyBatis之如何配置

    1,MyBatis简介 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简 ...

  7. numpy 字符数组和字符操作(略)

    字符数组 该部分内容见 numpy-ref-1.14.5 中的 1.6.4 字符数组Character arrays (numpy.char) 和 3.1.4 创建字符数组Creating chara ...

  8. linux\mac 日常入门命令行使用——搜索文件\文件夹

    搜索文件或者文件夹,是一个常见的需求.我们可以用多种命令来实现我们的需求. find 命令实现搜索 find 是英文,寻找的意思.这个命令可以很方面的来搜索我们需要的内容. 标准命令如下: find ...

  9. 【Redis源代码剖析】 - Redis内置数据结构之字典dict

    原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51018337 今天我们来讲讲Redis中的哈希表. 哈希表在C++中相应的是ma ...

  10. 转: 基于elk 实现nginx日志收集与数据分析

    原文链接:https://www.cnblogs.com/wenchengxiaopenyou/p/9034213.html 一.背景 前端web服务器为nginx,采用filebeat + logs ...