mini2440引脚中断输入配置
2012-07-16 19:13
239 查看
今天做一个测试软件,需要修改驱动。即把mini2440的GPIO口之GPG1(EINT9)、GPG9(EINT17)、GPG10(EINT18)设置为中断输入,Both edge triggered,参照wince5.0 BSP驱动userkey进行设置。对
IRQ = 36; //IRQ_EINT8; GPG0
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &IRQ, sizeof(UINT32), &g_KeySysIntr[0], sizeof(UINT32), NULL)) {
RETAILMSG(1, (TEXT("ERROR: kEYBD: Failed to request sysintr value.\r\n")));
return FALSE;
}
IRQ =36。为什么是36而不是别的,根据我以往的经验,这个肯定在什么地方定义了,在MSDN中查找KernelIoControl,查到末尾也没有结果,因为这个函数调用的最后是不开源的,见不到函数原型。我转而开始查看包含的头文件,终于在s3c2440a_intr.h中找到了定义。
在初始化过程中,需要先把引脚配置成输入,然后配置中断触发方式。
s2440IOP->rGPGCON = (s2440IOP->rGPGCON & ~(0x3 << 2)) | (0x2 << 2);
// GPG1 == EINT9
s2440IOP->rEXTINT1 = (s2440IOP->rEXTINT1 & ~(0x7<< 4)) | (0x6 << 4);
// Both edge triggered
s2440IOP->rGPGCON = (s2440IOP->rGPGCON & ~(0x3 << 18)) | (0x2 << 18);
// GPG9 == EINT17
s2440IOP->rEXTINT2 = (s2440IOP->rEXTINT2 & ~(0x7<< 4)) | (0x6 << 4);
// Both edge triggered
s2440IOP->rGPGCON = (s2440IOP->rGPGCON & ~(0x3 << 20)) | (0x2 << 20);
// GPG10 == EINT18
s2440IOP->rEXTINT2 = (s2440IOP->rEXTINT2 & ~(0x7<< 8)) | (0x6 << 8);
// Both edge triggered
IRQ = 36; //IRQ_EINT8; GPG0
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &IRQ, sizeof(UINT32), &g_KeySysIntr[0], sizeof(UINT32), NULL)) {
RETAILMSG(1, (TEXT("ERROR: kEYBD: Failed to request sysintr value.\r\n")));
return FALSE;
}
IRQ =36。为什么是36而不是别的,根据我以往的经验,这个肯定在什么地方定义了,在MSDN中查找KernelIoControl,查到末尾也没有结果,因为这个函数调用的最后是不开源的,见不到函数原型。我转而开始查看包含的头文件,终于在s3c2440a_intr.h中找到了定义。
在初始化过程中,需要先把引脚配置成输入,然后配置中断触发方式。
s2440IOP->rGPGCON = (s2440IOP->rGPGCON & ~(0x3 << 2)) | (0x2 << 2);
// GPG1 == EINT9
s2440IOP->rEXTINT1 = (s2440IOP->rEXTINT1 & ~(0x7<< 4)) | (0x6 << 4);
// Both edge triggered
s2440IOP->rGPGCON = (s2440IOP->rGPGCON & ~(0x3 << 18)) | (0x2 << 18);
// GPG9 == EINT17
s2440IOP->rEXTINT2 = (s2440IOP->rEXTINT2 & ~(0x7<< 4)) | (0x6 << 4);
// Both edge triggered
s2440IOP->rGPGCON = (s2440IOP->rGPGCON & ~(0x3 << 20)) | (0x2 << 20);
// GPG10 == EINT18
s2440IOP->rEXTINT2 = (s2440IOP->rEXTINT2 & ~(0x7<< 8)) | (0x6 << 8);
// Both edge triggered
相关文章推荐
- stm32笔记:GPIO的的配置和操作(2)引脚输入之查询按键
- STM32F103程序设计-7-引脚输入功能-按键(中断)
- 关于mini2440按键中断的配置
- 七、mini2440裸机程序之定时器中断(2)时钟相关寄存器配置
- 关于STM32的几种输入模式以及外部中断的配置
- Linux基本网络设置(IP配置等,网卡驱动缓存,网卡中断)
- oneproxy-monitor支持动态更新配置,保证前端业务不被中断
- mac下git push避免每次都输入用户名和密码的配置
- mini2440中断实验
- Java环境一键配置,需要手动输入jdk路劲。
- 移植u-boot-2009.08到mini2440(一)基础配置篇
- Windows下正确配置cwRsync,每次向Linux同步代码时,不需输入密码
- android输入设备配置文件加载过程分析
- ARM 中断--IRQ and FIQ配置--外部配置
- ARM系统中断向量表的动态配置
- 在配置内核时输入:make menuconfig
- PCI-E配置MSI中断流程解析
- 基于XML配置方式实现输入校验
- log4j日志配置文件及将日志根据不同的等级输入到不同的文件之中
- log4j日志配置文件及将日志根据不同的等级输入到不同的文件之中