按键扫描

博主在进行按键扫描项目时遇到连续按键的问题,通过深入分析发现了程序的不足,并进行了相应的改进,添加了详细的注释以提高代码可读性。

最近在做按键扫描,一直连按,最后发现是按键扫描程序有问题,做了一下修改并加上了注释

uint8_t Key_Scan(uint8_t mode)
{    
    static uint8_t key_up = 1; //按键是否松开标志,为0按键按下,为1按键松开
    if(mode) key_up = 1;       //如果模式1,那么支持连按     
    if(key_up && (KEY0 == 0 || KEY1 == 0))//有按键按下
    {
        delay_ms(10); 
        key_up = 0;//按键按下,如果连按的话就会进不去if语句
        if(KEY0 == 0)return One;
        else if(KEY1 == 0)return Two;
    }
    else if(KEY0 == 1 && KEY1 == 1) key_up = 1;     //如果松开,设置标志为松开    
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值