智能车制作

标题: 按键扫描程序请教 [打印本页]

作者: 孔令超    时间: 2015-5-5 13:31
标题: 按键扫描程序请教
#define KEY_MODE0x01    // 模式按键
#define KEY_PLUS0x02     // 加
voidKeyProc(void)
{
       if (Trg & KEY_MODE) // 如果按下的是KEY_MODE,而且你常按这按键也没有用,
    {                    //它是不会执行第二次的哦 , 必须先松开再按下
         Mode++;         // 模式寄存器加1,当然,这里只是演示,你可以执行你想
                         // 执行的任何代码
    }
    if (Cont & KEY_PLUS) // 如果“加”按键被按着不放
    {
         cnt_plus++;       // 计时
         if (cnt_plus > 100) // 20ms*100 =2S 如果时间到
         {
              Func();      // 你需要的执行的程序
         }         
    }
}
  如果“加”按键被按着不放  Cont为1  KEY_PLUS为2  Cont & KEY_PLUS为假   那下边计数程序咋执行呢   求大神指导


作者: zhou1994    时间: 2015-5-5 14:47
你用的是位相与。按照你的想法,你应该用&&。因为用&的话,1和2最后出来是一个真条件。
作者: 孔令超    时间: 2015-5-5 14:49
zhou1994 发表于 2015-5-5 14:47
你用的是位相与。按照你的想法,你应该用&&。因为用&的话,1和2最后出来是一个真条件。

1不是01 2不是10吗  位运算后不是0吗

作者: 玩意Tc    时间: 2015-5-5 19:01
三行按键哈~
作者: 浅笑无痕    时间: 2015-5-6 19:53
哈哈。。。度娘搜索高效率矩阵按键就出来这个程序了。。。嘿嘿




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2