此帖出自单片机论坛
最新回复
古董是有的,不一定用得上,贴上试试,如有用最好。
#define KEY_DET_TM 10 /* 按键去抖动时间(ms) */
#define FIRST_RPT 500 /* 初次重复键的间隔(ms) */
#define CONT_RPT 80 /* 第2次以后的连续键间隔(ms) */
void Int_SysTimer(void) /* 1ms间隔的中断服务程序 */
{
static unsigned short cnt_Key, new_Key;
if (new_Key && (new_Key == KeyIn())) {
if (++cnt_Key == KEY_DET_TM) {
Ctrl.key = new_Key;
} else if (cnt_Key >= (KEY_DET_TM + FIRST_RPT + CONT_RPT)) {
cnt_Key = (KEY_DET_TM + FIRST_RPT);
Ctrl.key = new_Key;
} else if (cnt_Key == (KEY_DET_TM + FIRST_RPT)) {
Ctrl.key = new_Key;
}
} else if (KeyIn() != new_Key) {
new_Key = KeyIn();
cnt_Key = 0;
}
}
详情
回复
发表于 2009-5-15 23:19
| ||
|
||
|
|
|
|
回复 板凳 仙猫 的帖子
此帖出自单片机论坛
| ||
|
||
个人签名我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会! |
|
按键超过60ms才反应是否会有迟钝感呢?此帖出自单片机论坛
赞赏 | |
|
|
| |
|
|
此帖出自单片机论坛
赞赏 | ||
|
||
| |
|
|
EEWorld Datasheet 技术支持