用了辅助性的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 }