延时消抖获取按键值的函数

用了辅助性的release变量,不用release,烧写开发板,我的蜂鸣器会出现间歇性的声音,说明还是没有去除抖动。

 1 int key_getvalue(void)
 2 {
 3     int ret = 0;
 4     static unsigned char release = 1; /* 按键松开 */ 
 5 
 6     if((release==1)&&(read_key()== 0))        /* KEY0     */
 7     {    
 8         delay(10);        /* 延时消抖         */
 9         release = 0;    /* 标记按键按下 */
10         if(read_key() == 0)
11         {
12             ret = KEY0_VALUE;
13         }    
14     }
15     else if(read_key()== 1)
16     {
17         ret = KEY_NONE;
18         release = 1;     /* 标记按键释放 */
19     }
20     return ret;    
21 }

 

posted @ 2021-01-04 01:39  昆山皮皮虾  阅读(158)  评论(0编辑  收藏  举报