CY方案,想做一个按键的短按和长按功能
时间:10-02
整理:3721RD
点击:
请教各位大神,我在用CY方案时,需要做一个按键的短按和长按功能,一直没成功,代码如下:
if (index == 0x00) // 按键按下
{
f1_key_pressed = TRUE;
Pageup_key_MS ++;
}
if (f1_key_pressed) {
if (Pageup_key_MS >= 1000)
{
index = 0x0B;
add_queue(index);
Pageup_key_MS = 0;
}
if (Pageup_key_MS < 200)
{
index = 0x0C;
add_queue(index);
}
}
不管是按键按一下松开还是长按,Pageup_key_MS总是只加1,
请问给位大神,怎样让按键按下时,Pageup_key_MS一直加?
if (index == 0x00) // 按键按下
{
f1_key_pressed = TRUE;
Pageup_key_MS ++;
}
if (f1_key_pressed) {
if (Pageup_key_MS >= 1000)
{
index = 0x0B;
add_queue(index);
Pageup_key_MS = 0;
}
if (Pageup_key_MS < 200)
{
index = 0x0C;
add_queue(index);
}
}
不管是按键按一下松开还是长按,Pageup_key_MS总是只加1,
请问给位大神,怎样让按键按下时,Pageup_key_MS一直加?
没有大神做过这样的功能吗?
请指教!
你的判断按键的变量index和下面具体操作的index冲突了,按键按下Pageup_key_MS +1之后,直接就进入 if (Pageup_key_MS < 200)里面,然后 index = 0x0C;index的值就不是0了,长按和短按都进不了if (index == 0x00),必须松开重按才会进入,所以Pageup_key_MS不会连续加。把判断按键if (index == 0x00)换成if (xx == 0x00),变量换个名字应该就可以了。
谢谢!应该是我程序写错了,不能这么表达
谢谢,应该是我程序写错了,不知道你有没有做过按键短按长按这方面的,可否发给我参考下?