打印

如何将按键按下一次作为一次输入

[复制链接]
500|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
骓风91|  楼主 | 2016-10-31 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是扫描法检测按键  但是按下一次就会扫描很多次  如何更改函数使得按下抬起一次作为一次的输入

char keyScan(void)
{
    char key = 0;
    char row,col;
//    char key_now ;
//    char key_past;

    P9DIR = 0XF0;
    P9REN = 0X0F;
    P9OUT = 0X0F;         
    if((P9IN & 0X0f) != 0X0f)   //判断是否有有键按下(检测输入是否全部为高),若有 往下执行
    {
        delays();
        if((P9IN&0x0f)!=0x0f)     //再次判断列中是否是干扰信号,不是则向下执行
        {         
            row = P9IN&0x0f;

            P9DIR = 0X0F;
            P9REN = 0XF0;
            P9OUT = 0XF0;
            col = P9IN&0xf0;
//            if((key_past==0)&&(key_now==1))
            {   key = row|col;
//                key_past = key_now;
//                key_now = 0;
            }
        }        
    }   
    return key;
}

相关帖子

沙发
骓风91|  楼主 | 2016-11-1 14:29 | 只看该作者
已解决

使用特权

评论回复
板凳
i1mcu| | 2016-11-1 16:44 | 只看该作者
使用whilt循环

使用特权

评论回复
地板
i1mcu| | 2016-11-1 16:47 | 只看该作者
while等待信号为0

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

24

帖子

0

粉丝