• 大小: 147KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: 新型  按键扫描  

资源简介

增加去抖动的新型的按键扫描程序的测试程序 配合文章: http://blog.csdn.net/lan120576664?viewmode=contents

资源截图

代码片段和文件信息

#include “keyscan.h“
/*
Trg(triger) 代表的是触发,
Cont(continue)代表的是连续按下。 

(1)没有按键的时候
ReadData=0x00;Trg=0x00;Cont=0x00
(2)第一次按下按键的情况
ReadData=0x01;Trg=0x01;Cont=0x01
(3)按键按着不松(长按键)的情况
ReadData=0x01;Trg=0x00;Cont=0x01
(4)按键松开的情况
ReadData=0x00;Trg=0x00;Cont=0x00
*/

#define INVAILD_VAL (0xFF)

typedef  enum{
E_KEY_UP = 0
E_KEY_DOWN
E_KEY_HOLD
E_KEY_RELEASE
}KEY_STATE;

KEY_STATE gkeystate = E_KEY_UP;

unsigned char gTrg; 
unsigned char gCont; 
unsigned char gReckey;


void KeyRead( unsigned char uVal ) 

unsigned char ReadData = uVal^0xff; // 1
gTrg = ReadData & (ReadData ^ gCont);   // 2 
if (gTrg == 0 && ReadData == 0)
{
if (gCont)
{
gkeystate = E_KEY_RELEASE;
}
else
{
gkeystate = E_KEY_UP;
gReckey = INVAILD_VAL;
}
}
else
{
if (gTrg == 0)
{
gkeystate = E_KEY_HOLD;
}
else
{
if (gReckey != uVal)
{//抖动处理
gReckey = uVal;
return;
}
gkeystate = E_KEY_DOWN;
}
}
gCont = ReadData;                        // 3 



unsigned char KeyProc(void)
{
switch (gkeystate)
{
case E_KEY_HOLD:
printf(“E_KEY_HOLD.[0x%X]..\r\n“gReckey);
break;
case E_KEY_DOWN:
printf(“E_KEY_DOWN.[0x%X]..\r\n“gReckey);
break;
case E_KEY_RELEASE:
printf(“E_KEY_RELEASE.[0x%X]..\r\n“gReckey);
break;
default:
break;
}
return gReckey;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-11-04 18:36  KeyTest\
     文件         887  2014-11-04 11:31  KeyTest.sln
     文件       21504  2014-11-04 18:36  KeyTest.suo
     文件        1471  2014-11-04 18:25  KeyTest\keyscan.c
     文件         148  2014-11-04 14:36  KeyTest\keyscan.h
     文件      105128  2014-11-04 18:22  KeyTest\KeyTest.aps
     文件        2103  2014-11-04 15:18  KeyTest\KeyTest.cpp
     文件         514  2014-11-04 11:31  KeyTest\KeyTest.h
     文件        5505  2014-11-04 18:22  KeyTest\KeyTest.rc
     文件        5663  2014-11-04 18:23  KeyTest\KeyTest.vcproj
     文件        1409  2014-11-04 18:36  KeyTest\KeyTest.vcproj.蓝曙光.蓝 曙 光.user
     文件        3972  2014-11-04 18:24  KeyTest\KeyTestDlg.cpp
     文件         777  2014-11-04 11:40  KeyTest\KeyTestDlg.h
     文件        4242  2014-11-04 11:31  KeyTest\ReadMe.txt
     目录           0  2014-11-04 18:36  KeyTest\res\
     文件         679  2014-11-04 11:40  KeyTest\resource.h
     文件       67777  2007-11-28 16:21  KeyTest\res\KeyTest.ico
     文件         398  2014-11-04 11:31  KeyTest\res\KeyTest.rc2
     文件       14848  2014-11-04 18:36  KeyTest\res\Thumbs.db
     文件         209  2014-11-04 11:31  KeyTest\stdafx.cpp
     文件        2029  2014-11-04 11:31  KeyTest\stdafx.h
     文件        1432  2014-11-04 11:31  KeyTest\targetver.h

评论

共有 条评论