- 博客(0)
- 资源 (1)
- 收藏
- 关注
异步按键检测实现的C代码
异步按键实现的C代码
关键代码
signed char Key_GetKeyValue(void)
{
unsigned char i;
if (!keyStruct.event[0] && Key0()) {
if ((!keyStruct.press[0]) && (keyStruct.dlyCnt[0]++ >= 20)) {
keyStruct.event[0] = true;
keyStruct.press[0] = true;
}
}
else if (!Key0()) {
keyStruct.dlyCnt[0] = 0;
keyStruct.press[0] = false;
}
if (!keyStruct.event[1] && Key1()) {
if ((!keyStruct.press[1]) && (keyStruct.dlyCnt[1]++ >= 20)) {
keyStruct.event[1] = true;
keyStruct.press[1] = true;
}
}
else if (!Key1()) {
keyStruct.dlyCnt[1] = 0;
keyStruct.press[1] = false;
}
if (!keyStruct.event[2] && Key2()) {
if ((!keyStruct.press[2]) && (keyStruct.dlyCnt[2]++ >= 20)) {
keyStruct.event[2] = true;
keyStruct.press[2] = true;
}
}
else if (!Key2()) {
keyStruct.dlyCnt[2] = 0;
keyStruct.press[2] = false;
}
if (!keyStruct.event[3] && Key3()) {
if ((!keyStruct.press[3]) && (keyStruct.dlyCnt[3]++ >= 20)) {
keyStruct.event[3] = true;
keyStruct.press[3] = true;
}
}
else if (!Key3()) {
keyStruct.dlyCnt[3] = 0;
keyStruct.press[3] = false;
}
for (i = 0; i < 4; i++) {
if (keyStruct.event[i]) {
keyStruct.event[i] = false;
return Key_PutKeyBuffer(i);
}
}
return -1;
}
2019-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人