按键的若干要素
来源:互联网 发布:windows apache php 编辑:程序博客网 时间:2024/05/16 08:29
按键通常都是一个任务。任务就是说,这个函数要周期性的调用。首先任务要使用若干全局变量,保存当前状态。
static uint8 KeyCount = 0;
static uint8 KeyOk = 0;
static uint8 OldKey = 0;
static uint16 KeyReady = 0;
要素分为以下几步:
1,扫描,取得按键序号
2,去抖,连续若干次,按键为真,否则为假
3,判断释放
4,延时,消除 重复响应
char KeyScan( void )
{
unsigned char key = KeyProcess();
//延时,消除重复响应
if ( KeyReady )
{
KeyReady++;
if ( KeyReady > 20 )
{
KeyOk = 0;
KeyReady = 0;
}
}
if ( KeyOk == 0 )
{
if ( ( key != KEY_NULL ) && ( key == OldKey ) )
{
KeyCount++;
//去抖,连续若干次,按键为真,否则为假
if ( KeyCount > 20 )
{
KeyCount = 0;
KeyOk = 1;
}
}
else
{
//key == KEY_NULL,或者key != OldKey
OldKey = key;
KeyCount = 0;
}
}
//在按键释放的时候,发送当前键
if ( KeyReady == 0 && key != OldKey )
{
KeyReady = 1;
return OldKey;
}
else
{
return KEY_NULL;
}
}
- 按键的若干要素
- BI商业智能项目中的若干风险要素
- 商业智能项目中的若干风险要素(转)
- 成功的要素
- 程序员的要素
- 要素的标注
- 要素的闪烁
- 表现透明的要素
- 优秀论文的要素
- 生活的要素
- SOA的2要素
- 社会结构的要素
- 用户体验的要素
- 稳定的要素
- "活图"的等高线要素
- 要素的移动
- 模式的要素
- 优秀论文的要素
- 我心目中的编程高手
- 10句温暖人的话
- android git 下载源码
- 【转】linux makefile编写
- wcf传输模式-流模式(Streaming)
- 按键的若干要素
- 绘制16*16的图标
- Linux多线程Pthread学习小结
- 在vs下调用exe程序
- 在wpf的用户线程中更新ui界面
- DLL+ ActiveX控件+WEB页面调用例子
- 幽默有度,形象为尊
- Oracle Network Files : tnsnames, listener, sqlnet
- 理解typedef