smilyD

1. 按键分类

  支持连续按

    不支持连续按

2. 按键输入实验

  2.1按键扫描思路(支持连续按)

 u8 KEY_Scan(void)
 {
      if(KEY按下)
     {
           delay_ms(10);//延时10-20ms,防抖。
           if(KEY确实按下)
            {
               return KEY_Value;
             }
          return 无效值;
      }
  }

  

  2.2按键扫描思路(不支持连续按)

 u8 KEY_Scan(void)
{
     static u8 key_up=1;
      if(key_up &&  KEY按下)
      {
        delay_ms(10);//延时,防抖
        key_up=0;//标记这次key已经按下
        if(KEY确实按下)
          {
           return KEY_VALUE;
          }
        }else if(KEY没有按下)  key_up=1;
       return 没有按下
}

  2.3 按键扫描思路(合二为一)

    

 u8 KEY_Scan(u8 mode)
{
     static u8 key_up=1;
     if(mode==1) key_up=1;//支持连续按
      if(key_up &&  KEY按下)
      {
        delay_ms(10);//延时,防抖
        key_up=0;//标记这次key已经按下
        if(KEY确实按下)
          {
           return KEY_VALUE;
          }
        }else if(KEY没有按下)  key_up=1;
       return 没有按下
 }

  

 

分类:

技术点:

相关文章:

  • 2021-10-04
  • 2022-12-23
  • 2021-09-27
  • 2021-09-27
  • 2021-09-27
  • 2021-09-27
  • 2021-09-27
猜你喜欢
  • 2021-09-27
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2021-09-27
  • 2021-09-27
  • 2021-08-31
相关资源
相似解决方案