2440按键模块
来源:互联网 发布:欧树蜂蜜洁面凝胶 知乎 编辑:程序博客网 时间:2024/06/01 10:36
按键的操作位置在于GPGCON,且应设置为00输入模式。
从GPGDAT中就检测状态为就能知道按键有没有按下
以下代码:
/***********************************************
Copyright (C), 2015-2016, xmetc Tech. Co., Ltd.
File name : led.c
Author : hjd
version : V1.0
Date : 2015-8-15
Description : led 模块的功能函数的实现
History :
1 Date 2015-8-15
Author hjd
Modification Init vision
*************************************************/
#include "key.h"
#include "2440addr.h"
/***********************************************
Function name : key_init
Description : 按键初始化
Input parameter : none
Return : none
Others : none
*************************************************/
void key_init( void)
{
volatile unsigned temp;
//GPGCON
temp =rGPGCON;
temp &= ~((0x3<<22)|(0x3<<14)|(0x3<<12)|(0x3<<10)|(0x3<<6)|(0x3));
rGPGCON = temp;
//GPGUP
temp =rGPGUP;
temp |= ((1<<11)|(1<<7)|(1<<6)|(1<<5)|(1<<3)|(1));
rGPGUP = temp;
}
/***********************************************
Function name : key_init
Description : 按键初始化
Input parameter : none
Return : none
Others : none
*************************************************/
int key_scan( void)
{
volatile unsigned temp;
temp = ~rGPGDAT;
temp &= (1<<11)|(1<<7)|(1<<6)|(1<<5)|(1<<3)|(1);
switch( temp)
{
case 1:
{
return KEY_1;
break;
}
case 1<<3:
{
return KEY_2;
break;
}
case 1<<5:
{
return KEY_3;
break;
}
case 1<<6:
{
return KEY_4;
break;
}
case 1<<7:
{
return KEY_5;
break;
}
case 1<<11:
{
return KEY_6;
break;
}
default:
return KEY_N;
break;
}
return KEY_N;;
}
/***********************************************
Function name : get_keyvalue
Description : 确认按键是否按下
Input parameter : none
Return : none
Others : none
*************************************************/
int get_keyvalue(void)
{
volatile unsigned temp;
unsigned int key = KEY_N;
if( key_scan() != KEY_N)
{
Delay_MS( 10);
if( key_scan() != KEY_N)
{
key = key_scan();
while( key_scan() != KEY_N);//防重复
}
}
return key;
}
- 2440按键模块
- FPGA按键消抖模块
- HTML5+JS游戏开发模块----按键模块
- STM32入门开发--按键模块实现按键点灯
- 处理按键事件的js模块
- 复位按键模块设备驱动开发
- pcduino v3 的按键模块加载
- 51单片机 指纹模块 按键部分
- 2440 按键中断
- 2440按键驱动分析
- linux按键驱动模块(中断方式) 程序和调试总结
- arm电子相册项目——按键模块篇led.c
- 【MultiButton】并发状态事件驱动按键驱动模块
- key 模块,旋钮+按键,两路AD取值
- 按键
- 按键
- 按键
- 按键
- AppDelegate.cpp文件详解
- Oracle实现列的自动增长
- 添加主机失败
- Light OJ 1188 Fast Queries(分块暴力)
- 1-Android基础知识
- 2440按键模块
- Cell自适应高度
- HDOJ 2544 最短路(dijkstra)
- CloudStack SSVM的Java process not running的解决方法
- HDOJ 2680 Choose the best route (最短路变形 Dijkstra && SPFA)
- Poj 2386 Lake Counting
- 10 篇精选Android技术文章
- c++ assert
- hdu1285确定比赛名次(最简单的拓扑排序)