简单按键程序问题。

[复制链接]
1968|4
 楼主| 595332542 发表于 2013-8-13 21:30 | 显示全部楼层 |阅读模式
老师好,本人初学dsp,用28335,现在要求,六个按键实现不同功能,这个程序现在功能可以实现,但存在误读,就是读两次按键或者不读按键,大神说延时去抖动有问题,但不知从何下手,请大家帮忙看下。
  1. if(key1==0)
  2. {
  3.   delay(20);
  4.   if(key1==0);
  5.    {
  6.          while(!key1);
  7.          num1++;
  8.          if(num1>=3)
  9.          num1=0;
  10.   
  11.       }
  12.      }
  13. //********************************************************************
  14.   if(key2==0)
  15. {
  16.   delay(20);
  17.   if(key2==0);
  18.    {
  19.        delay(20);
  20.        while(!key2);

  21.        num2++;

  22.        if(num2>=6)
  23.        num2=0;
  24.        Funflag=1;
  25.       }
  26.      }
  27. //***********************************************************
  28.   if(key3==0)//按键3
  29. {
  30.   delay(20);
  31.   if(key3==0);
  32.    {
  33.     delay(20);
  34.     while(!key3);

  35.     num3++;
  36.    // y2=y2+17;
  37.     flag3=1;
  38.    if(num3==8)
  39.        
  40.   {  
  41.    num3=1;
  42.    }
  43.   
  44.    }

  45. }

  46. //****************************************************************
  47. if(key4==0)////按键4
  48. {
  49.   delay(20);
  50.   if(key4==0)
  51.    {
  52.    delay(20);
  53.      while(!key4);
  54.            num4++;
  55.            // flag4=1;
  56.     }

  57. }
  58. //*******************************************************************
  59. if(key5==0)//按键5
  60. {
  61. delay(20);

  62.   if(key5==0);
  63.    {
  64.      delay(20);
  65.    while(!key5);
  66.     num5++;
  67.          //flag5=1;
  68.     }
  69. }
  70. //************************************************************************
  71. //if((key6==0)&((num2==3)||(num2==4)))//按键6
  72. if(key6==0)
  73. {

  74.   delay(20);
  75.    
  76.   if(key6==0);
  77.    {
  78. delay(20);
  79.    while(!key6);

  80.     num6++;
  81.         key6flag=1;                                                            

  82.    if(num6>=4)
  83.      num6=1;   
  84.       }

  85.      }
 楼主| 595332542 发表于 2013-8-13 22:06 | 显示全部楼层
不要沉下去。。。
qq626041858 发表于 2013-8-13 23:16 | 显示全部楼层
楼主你的if(key1==0);为什么后面都加分号呢???是不是你不小心加上的???
gaochy1126 发表于 2013-8-13 23:39 | 显示全部楼层
加个延时函数,然后等等待按键按松开的。
gaochy1126 发表于 2013-8-13 23:40 | 显示全部楼层
不读取,可能是因为总得循环有问题的。使用中断。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

77

帖子

3

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