外设一个一个学 for_ARM interrupt keyboard

发布者:未来感觉最新更新时间:2016-08-05 来源: eefocus关键字:外设  ARM  interrupt  keyboard 手机看文章 扫描二维码
随时随地手机看文章
关于中断按键:上原理图

外层板子原理图

外设一个一个学 for_ARM interrupt keyboard - KeVen.w - Study Hard And Make

 

四层板原理图(核心板子)

 

 外设一个一个学 for_ARM interrupt keyboard - KeVen.w - Study Hard And Make

 

本板子总共使用了留个按键分别是EINT1~EINT7

所以对应的寄存器是GPH1_1~GPH0_7..

首先来查看芯片手册查看关于GPH0寄存器的descriptor

GPH0,1,2,3: 32 in/out pin –CAM IF channel, Key pad, External Wakeup (up-to 32-bit)

大概意思主要想表达GPHO是可被外部唤醒的.

GPH0CON[7]  [31:28]  0000 = Input, 0001 = Output, 0010 = WU_INT[7]  0000

GPH0CON[6]  [27:24]  0000 = Input, 0001 = Output, 0010 = WU_INT[6]  0000

GPH0CON[5]  [23:20]  0000 = Input, 0001 = Output, 0010 = WU_INT[5]  0000

GPH0CON[4]  [19:16]  0000 = Input, 0001 = Output, 0010 = WU_INT[4]  0000

GPH0CON[3]  [15:12]  0000 = Input, 0001 = Output, 0010 = WU_INT[3]  0000

GPH0CON[2]  [11:8]  0000 = Input, 0001 = Output, 0010 = WU_INT[2]  0000

GPH0CON[1]  [7:4]  0000 = Input, 0001 = Output, 0010 = WU_INT[1]  0000

PAD CONTROL    S5PC100 USER’S MANUAL (REV1.0)

2.2-36

GPH0CON[0]  [3:0]  0000 = Input, 0001 = Output, 0010 = WU_INT[0]  0000

那么我们看看可唤醒中断配置寄存器:

5.6.1 Wakeup Interrupt 0_7 Configuration (WU_INT0_7_CON, R/W, Address = 0xE030_0E00)

The value of WU_INTx_y_CON[n] means that 000 = Low level, 001 = High level, 010 = Falling edge triggered,

011 = Rising edge triggered, 100 = Both edge triggered

意思是唤醒中断配置寄存器

000 为低电平有效 001为高电平有效 010为下降沿触发 011为上升沿触发有效 100为两种沿都可以

 

在看看可唤醒中断掩码寄存器:

Wakeup Interrupt 0_7 Mask (WU_INT0_7_MASK, R/W, Address = 0xE030_0F00)

The value of FLTENx_y[n] means that 0= disable, 1=enable. The value of FLTSELx_y[n]means that 0 = delay

filter, 1 = digital filter

FLTENx_y[n] 0 为使能关闭 1 为使能打开

FLTSELx_y[n] 0为延迟过滤器 1为数字滤波器

Reserved [31:8]  Reserved 

WU_INT0_7_MASK [n]  [n]

Mask for WU_INT[n]

0 = Enabled,1 = Masked (n=0~7)

看完这些寄存器就可以实现按键中断了:

首先了解中断流程:(这里为GPH0)

①:使能引脚的中断方式 --- 也就是上述GPH0CON = GPH0CON & (~(0xf)) | 0x2<<4 <------- >GPH0CON[1]这里暂时用的是key1、根据原理图key1为enter1既为GPH0CON[1]

②:设置中断的触发方式(也就是配置可唤醒中断寄存器)

为WKUP_INT0_7_CON[1]

WKUP_INT0_7_CON = ( WKUP_INT0_7_CON & (~(0x7<<4)))  | (0X2<<4);

设置下降沿触发

010

0111<<4

~11100000 = 0001 1111 | 0010 <<4

0001 1111 | 0010 0000

= 0011 1111

所以4-6位该是011 所以就对了上面共八位是0 – 7

③:使能中断屏蔽寄存器(mask)

WKUP_INT0_7_MASK = WKUP_INT0_7_MASK &(~(0x1<<1)) ;

0010 ~ =0 故0为使能关闭中断。

④:使能VIC关于GPH0中断

VIC0INTERRUPT.VIC0INTENABLE |=1<<1; //从下往上数为第2个所以为1

这里为什么使用VIC0呢、是芯片手册给我们提供的。

外设一个一个学 for_ARM interrupt keyboard - KeVen.w - Study Hard And Make

⑤:注册中断函数并且实现do_irq函数和中断服务函数并且到最后清除中断位

VIC0VECTADDR.VIC0VECTADDR1 = (unsigned int )key1_int;

void key1_int()

{

    printf("key1_int\n");

    VIC0ADDRESS =0;

    VIC1ADDRESS =0;

    VIC2ADDRESS =0;

    WKUP_INT0_7_PEND = 1<<1;

/*这是关于等待中断WAKEU_PENDING的描述

*/ Wakeup Interrupt 0_7 Pending (WU_INT0_7_PEND, R/W, Address = 0xE030_0F40)

Field  Bit  Description  Reset Value

Reserved [31:8]  Reserved  0

WU_INT0_7_PEND [n]  [n]

This bit is set if WU_INT [n] is pending.

Writing ‘1’ makes this bit clear. (n=0~7)

0

Note. Even though WU_INT0_7_MASK [n] is masked, this can be pended.

}

void do_irq()  /*do_irp函数的实现()*/

{

    printf("VIC0ADDRESS = %x\n",VIC0ADDRESS );

    ( (  void(*)(void)  )VIC0ADDRESS)();

}

关于( (  void(*)(void)  )VIC0ADDRESS)();

这其实是一个函数指针的强转。

完全可以理解为void (*)();

这样去理解。

通过上述就可以实现一个按键中断。

 /*---------------------*/

printf("keven");

关键字:外设  ARM  interrupt  keyboard 引用地址:外设一个一个学 for_ARM interrupt keyboard

上一篇:外设一个一个学_PWM
下一篇:外设一个一个学 for ARM_first

推荐阅读最新更新时间:2024-03-16 15:03

解读Arm架构数据中心联合实验室未来发展规划
2017年11月17日,龙岗区委书记张勇、贵州 华芯通 半导体技术有限公司(以下简称: 华芯通 半导体)董事长欧阳武、创新科存储技术(深圳)有限公司(以下简称:UIT创新科)董事长陈凯以及Arm公司全球执行副总裁兼大中华区总裁吴雄昂在以“集聚高端创新资源,打造东部创新中心”为主题的深圳市龙岗区重大项目签约仪式,暨“千人计划”专家创新创业交流会在2017深圳高交会上共同见证了来自四方代表签署的战略合作框架协议,四方约定在深圳市龙岗区成立“Arm架构数据中心联合实验室”,共同开发和建设基于高性能、低功耗的Arm架构处理器的自主、安全、可控的云计算和大数据应用数据中心示范工程。下面就随手机便携小编一起来了解一下相关内容吧。 为何A
[手机便携]
ARM 发布最新高端移动技术,提升沉浸式体验
ARM今日宣布推出最新高端移动处理器技术组合,重新定义2017年推出的旗舰型设备。ARM Cortex-A73 处理器和 ARM Mali-G71 图形处理器提供持久的最佳能效与性能状态,赋予新产品增强的情景与视觉能力。这有助于设备在有限移动功耗预算情况下,更长时间地运行高清内容。 ARM执行副总裁兼产品事业部总裁Pete Hutton 表示: 智能手机是全球最为普及的计算设备,其性能亦随着不断推陈出新而获得提升。凭借持久和出众的性能表现,以及卓绝惊艳的视觉效果,我们将在2017年看到基于Cortex-A73与Mali-G71的设备脱颖而出。这使得通过移动设备感受4K视频,VR和AR成为日常体验。 Mali-G7
[手机便携]
Keil C51对C语言的关键词扩展之十四: interrupt
8051/8052系列单片机标准向量表: 中断号 描述 地址 0 外部中断0 0003h 1 定时/计数器0 000Bh 2 外部中断1 0013h 3 定时计数器1 001Bh 4 串口 0023h 5 定时计数器2(8052) 002Bh 众多厂商为其51系列单片机添加了更多的中断。Keil Cx51编译器支持多达32个中断函数(中断号0-31)。下表列出了这32个中断向量入口地址: 中断号 入口地址 00003h1000Bh20013h3001Bh40023h5002Bh60033h7003Bh80043h9004Bh100053h11005Bh
[单片机]
ARM高效C编程和优化--编译器,内存和Cache优化以及功耗管理
上节主要介绍在资源受限的ARM设备上,在各种类型的操作系统上的选择,在C语言编程角度,如何构建代码才能更好的指导编译器compiler进行优化,诸如数据对齐data alignment,数据类型data type的选择,C语言函数调用的参数传递方式,以及编译器对结构体和数组的基本处理方式,下节则主要介绍编译器的使用规则,如何指导编译器进行合理的优化,以及系统级的NEON优化,从cache使用到系统功耗控制等。 关键字:ARM Cache 系统 优化 C语言 效率 功耗控制 系统架构 编译器 efficient NEON C编译器并非无所不知 简单地说, C编译器并不能根据程序员的代码就完全理解程序员的真实意图,而且通常为了保证程序
[单片机]
<font color='red'>ARM</font>高效C编程和优化--编译器,内存和Cache优化以及功耗管理
ARM JTAG仿真器调试方法之SDRAM篇
之前介绍了使用ARM JTAG仿真器将映像文件加载到ARM处理器内部SRAM中进行程序调试的方法,而在实际操作中,将映像文件加载到外部SDRAM中进行调试的方式更为常见。 要把映像文件加载到SDRAM中,除了要正确设置好映像文件的RO段基地址外(对于一个加载时域和运行时域相同的映像文件来说,RO段基地址实际上就是该映像文件在存储空间的起始地址),更关键的是要对SDRAM进行初始化。因为在上电时,SDRAM是没有被初始化的,所谓初始化SDRAM,就是要设置处理器的SDRAM空间以及读写SDRAM的时序参数,因而SDRAM在初始化之前是不能进行读写操作的。 对于PXA270处理器,初始化SDRAM的工作
[单片机]
基于嵌入式系统arm2210开发板的移动机器人人机界面设计
  摘要: 移动机器人人机界面为移动机器人的运动控制提供直观的路径图形、运动速度和角度、障碍物信息等。通过arm2210的串口uart0接收中心处理器pc104的运动信息,利用东芝公司的液晶控制器t6963c驱动stn液晶屏yl240128a,以及zlg/gui软件包提供的基本绘图和菜单操作函数设计了基于嵌入式系统arm2210开发板的移动机器人人机界面,并利用arm2210的i2c器件zlg7290提供的i2c接口功能和键盘中断信号实现菜单选择,具有很强的实用性。   引言   嵌入式系统以其高性能、低功耗、低成本的优点,已经在很大程度上改变了人们的生活。如,mp3播放器、智能手机、数码相机产品等已经渗入人们生活的各个方面。
[工业控制]
i.MX 处理器降低了系统成本和设计的复杂性
  面向大量消费电子和嵌入式市场的生产商,可以通过飞思卡尔半导体的第一款集成了混合信号技术的i.MX应用处理器来降低成本和简化产品设计。该器件将在中国深圳和印度班加罗尔两地举行的飞思卡尔技术论坛上展出。   i.MX233 处理器提供优化的片上系统解决方案,满足电子书( eBook)、便携媒体播放器(PMP)和需要图形用户显示器的其他移动消费电子应用的功率及性能要求。其他应用包括 VoIP手持设备、智能远程控制、家用电器、音频外设/附件和工业应用需要的简单人机界面(HMI)系统。   Chumby工业硬件工程副总裁 Dr. Andrew Huang表示,“飞思卡尔i.MX233处理器具备出众的表现性能和集成能力,允许我们在下一
[单片机]
基于ARM的可定制MCU可承担FPGA的工作
  如今的产品生命周期可能短至六个月,因此在这种情况下要想取得定制ASIC的低成本、低功耗和高性能优势几乎是不可能的。定制ASIC的设计周期通常要一年左右,这通常要比终端产品的生命周期还要长。另外,标准单元ASIC还具有NRE费用(非重复工程成本),对于基本的0.13微米设计,该成本约为30万美元,而对于具有复杂IP内容的90nm设计将超过100万美元。因而当每年的批量小于10万片时,从经济角度看就不具有可行性。   为此人们研发出了平台化或结构化ASIC,它们具有预设计的IP块和可编程的ASIC门,可显著降低成本并缩短设计周期。这种方案将设计周期从一年甚至更长的时间缩短到几个月,还将NRE成本降低到大约15万美元,不过与门阵列
[单片机]
基于<font color='red'>ARM</font>的可定制MCU可承担FPGA的工作
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved