wince AD采样轮询按键长按功能如何实现?

时间:2022-02-14 19:21:10
如题,中断形式的按键长按功能好处理,但是非中断形式按键如AD采样按键长按功能如何实现?谢谢。

6 个解决方案

#1


用定时器先做一个中断,然后再中断服务里去实现采集存储。

#2


轮询检测到按键后,先记录一下,判断在一段时间内是否都还有这个按键,有就是长按键。记得处理按键去抖

#3


该回复于2013-02-20 15:54:12被管理员删除

#4


引用 2 楼 brantyou 的回复:
轮询检测到按键后,先记录一下,判断在一段时间内是否都还有这个按键,有就是长按键。记得处理按键去抖

代码如下:
while(1)
{
Sleep(200);
if(ReadAD(IIC_ADDR, &byValue)) 
{
if(byValue > 0x130 && byValue < 0x160)
{
    keybd_event(VK_F10,0,0,0);
    keybd_event(VK_F10,0,KEYEVENTF_KEYUP,0);
}
else if
... ...

#5


引用 4 楼 ywmen 的回复:
引用 2 楼 brantyou 的回复:轮询检测到按键后,先记录一下,判断在一段时间内是否都还有这个按键,有就是长按键。记得处理按键去抖
代码如下:
while(1)
{
Sleep(200);
if(ReadAD(IIC_ADDR, &amp;byValue)) 
{
if(byValue > 0x130 &amp;&amp; byValue < 0x16……

你在获取到按键按下的时候,应该标记一下,然后判断在你认为是长按键的时间内是否还是该按键被按下,如果是才认定为长按键。
你这里延时200ms,不知道这个while里面是只处理长按键还是所有按键的都处理,如果所有按键都处理那肯定有问题

#6


问题解决,结贴。

#1


用定时器先做一个中断,然后再中断服务里去实现采集存储。

#2


轮询检测到按键后,先记录一下,判断在一段时间内是否都还有这个按键,有就是长按键。记得处理按键去抖

#3


该回复于2013-02-20 15:54:12被管理员删除

#4


引用 2 楼 brantyou 的回复:
轮询检测到按键后,先记录一下,判断在一段时间内是否都还有这个按键,有就是长按键。记得处理按键去抖

代码如下:
while(1)
{
Sleep(200);
if(ReadAD(IIC_ADDR, &byValue)) 
{
if(byValue > 0x130 && byValue < 0x160)
{
    keybd_event(VK_F10,0,0,0);
    keybd_event(VK_F10,0,KEYEVENTF_KEYUP,0);
}
else if
... ...

#5


引用 4 楼 ywmen 的回复:
引用 2 楼 brantyou 的回复:轮询检测到按键后,先记录一下,判断在一段时间内是否都还有这个按键,有就是长按键。记得处理按键去抖
代码如下:
while(1)
{
Sleep(200);
if(ReadAD(IIC_ADDR, &amp;byValue)) 
{
if(byValue > 0x130 &amp;&amp; byValue < 0x16……

你在获取到按键按下的时候,应该标记一下,然后判断在你认为是长按键的时间内是否还是该按键被按下,如果是才认定为长按键。
你这里延时200ms,不知道这个while里面是只处理长按键还是所有按键的都处理,如果所有按键都处理那肯定有问题

#6


问题解决,结贴。