求问:我把按键例程改了两句后按键就不灵敏了

2019-10-14 22:27发布

  下面是原代码和我改了两句的代码,除了main函数不一样其他地方如KEY_Scan(u8 mode)都没改,但下载后无论是按哪个按键都时好时坏,按下去几下或者十几下可能才会有反应(体现在lcd屏上数值的变化),这是什么情况?
  谢谢。

这是例程的代码:
        while(1)
        {
                key=KEY_Scan(0);
                   if(key)
                {                                                  
                        switch(key)
                        {                                 
                                case WKUP_PRES:
                                        BEEP=!BEEP;
                                        break;
                                case KEY1_PRES:
                                        LED1=!LED1;
                                        break;
                                case KEY0_PRES:
                                        LED0=!LED0;
                                        LED1=!LED1;
                                        break;
                        }
                }else delay_ms(10);
        }         

这是我改写的代码:
while(1)
{
   key=KEY_Scan(0);
   if(key)
   {                                                  
      switch(key)
     {                                 
        case KEY1_PRES:                 
          count=count+1;
        break;
        case KEY0_PRES:       
          count=count+10;
        break;
       }
        LCD_ShowNum(50,60,count,8,24);
               
        }else delay_ms(10);                
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
正正杨
2019-10-15 19:55
BMN李 发表于 2017-2-28 09:54
用中断扫描按键咯。

我按你说的 LCD那个思路写成这样了
if(key)
                {                                                  
                        switch(key)
                        {       
                                case WKUP_PRES:       
                                        LED1=!LED1;
                                        break;                                
                                case KEY1_PRES:                 
                                        count=count+1;
                                LCD_ShowNum(50,60,count,8,24);
                                        break;
                                case KEY0_PRES:       
                                        count=count+10;
                                LCD_ShowNum(50,60,count,8,24);
                                        break;
                        }
但是那个亮灯的按键依旧不灵敏,这又是为啥?

一周热门 更多>