S5PV210ARM裸机部分—中断系统

  • s5pv210中断部分是我学习arm以来较为复杂的一部分,并且很难理解里面的关系,现在我写一篇博客来把思路挑清楚,使得这一部分不再杂乱无章。

  • 按键只是中断系统的一部分,也就是说按了按键中断就产生了。比如按键按下了LED灯亮了,其实这就是一个中断。他按下了就把正在进行的事情停止了下来,去做LED灯亮的中断。

查S5PV210的硬件原理图
这里写图片描述
一共有7个按键,能编程按键的只有SW5~10,从图中可以看出左边VDD_IO是高电压的,当按键按下时会与右边的接地符号导通。从而使整个按键处于低电平。底版中的EINT2-3或则KP—COL3则是引了条引线到核心板中。
这里写图片描述
SW5:GPHO_2
SW6:GPH0_3
同理通过先查底板的原理图,再查核心板的原理图可以得到sw7-11对应的寄存器
SW7:GPH2_0
SW8:GPH2_1
SW9:GPH2_2
SW10:GPH2_3

  • SoC按键有2种思路:轮询方式和中断方式。

    • 轮询方式,就是SoC主动的每隔一段时间去读取(按键所对应的)GPIO的电平高低,以此获得按键信息;
    • 中断方式,就是SoC事先设定好GPIO触发的中断所对应的中断处理程序ISR,当外部按键按下或弹开时会自动触发GPIO对应的外部中断,导致ISR执行,从而自动处理bbbbbbbbbbbbbbbbbbb从 按键信息。
  • 首先介绍一下轮询方式的中断
    由上分析可知可设置是寄存器是GPIO(通用输入输出模式),按键不按下是高电平,按下是低电平,按键的对应的GPIO为GPH0 GPH2,可把这两个寄存器设置为输入模式。
    这里写图片描述
    轮询方式处理中断的流程:

  • 第一步,先初始化GPIO模式为input

  • 第二歩,轮询读取GPIO的值,差看是否按键有被按下产生中断。

初始化按键:

//先创建key.c的文件,然后开始往里面写代码
//这些宏定义都是查看数据手册得知的。
#define GPH0CON 0xE0200C00
#define GPH0DAT 0XE0200C04

#define GPH2CON 0xE0200C40
#define GPH2DAT 0XE0200C44

//把这些宏定义对应的寄存器作为变量存储
#define rGPH0CON (*(volatile unsigned int*)G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值