CY方案,想做一个按键的短按和长按功能

2019-07-15 10:39发布

请教各位大神,我在用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一直加?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
l13537834
1楼-- · 2019-07-15 16:57
谢谢!应该是我程序写错了,不能这么表达
l13537834
2楼-- · 2019-07-15 20:51
yijin1989616 发表于 2017-5-27 11:34
你的判断按键的变量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), ...

谢谢,应该是我程序写错了,不知道你有没有做过按键短按长按这方面的,可否发给我参考下?

一周热门 更多>