键盘 按键 求救!

[复制链接]
2352|9
 楼主| wyhkerry 发表于 2007-7-23 08:52 | 显示全部楼层 |阅读模式
各位大虾,我的键盘怎么当我按下时,一下就会输出好多个字符呢
比如 :字母N  当我按一下N键的时候,就会出来4,5个N 
这是怎么回事啊  是不是我的案件按键响应时间比较短啊 需要延迟啊? 多谢各位咯
陈双君 发表于 2007-7-23 08:56 | 显示全部楼层

你读按钮的软件写得不对.

你读按钮的软件写得不对.
 楼主| wyhkerry 发表于 2007-7-23 09:30 | 显示全部楼层

为什么啊?

我的键盘 和电脑主机相连的啊 当有按键按下的时候 就会向主机发送响应的键码
但是当我打开记事本,看我输入字母对不对的时候  就会出现一下出来 好几个同样的字母 
jimoom 发表于 2007-7-23 09:49 | 显示全部楼层

既然和pc相连,那就跟协议有关了

既然和pc相连,那就跟协议有关了
 楼主| wyhkerry 发表于 2007-7-23 13:53 | 显示全部楼层

还要延迟吗?

是不是发送了一个键码后要延迟一段时间啊 
古道热肠 发表于 2007-7-23 14:22 | 显示全部楼层

P2/2键盘协议有详细介绍

jimoom 发表于 2007-7-23 16:04 | 显示全部楼层

re:ls

5楼: 还要延迟吗? 

是不是发送了一个键码后要延迟一段时间啊  
 
你是用什么控制发送的,问题应该出在你得键盘控制上,
如果你只发送一个键码,pc再怎么样也不会 误认为你发送了4 5个键码
 楼主| wyhkerry 发表于 2007-7-23 16:42 | 显示全部楼层

sos!

程序执行的时候 就是 发现有按键按下了  15ms消抖,判断真的有键按下 然后就去查找响应的按键,然后发出去!
也不晓得那里错了
gyt 发表于 2007-7-24 11:49 | 显示全部楼层

这样判当然不行

你下一次判的时候,键还是被你按住的,当然就不对了。
baipengwei 发表于 2007-7-24 11:58 | 显示全部楼层

while (!KEY); /* 等待按键抬起*/

        if (KEY == 0)     /* 有键按下 */
        {
            delay_key();  /* 去抖动   */
            if (KEY == 0)
            {
                LED = ~LED;
            }
            while (!KEY); /* 等待按键抬起*/
        }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

92

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部