三击检测
要先在配置中开启三击功能,如果未开启,否则不会被编译进去
#if USER_KEY_THRICE_EN
//按键三击检测
AT(.com_text.bsp.key)
u16 key_three_press_process(u16 key_val)
{
key_thrice_t *s = &key_thrice_cb;
u16 key_return = key_val;
if (s->cnt) {
s->cnt--;
}
if (s->cnt == 1) {
return s->val;
}
if (((key_val & KEY_TYPE_MASK) == KEY_DOUBLE) && (!s->cnt)) {
s->val = key_val;
s->cnt = s->stable;
key_return = NO_KEY;
} else if ((s->cnt) && ((key_val & KEY_TYPE_MASK) == KEY_SHORT_UP) && ((key_val & 0xff) == (s->val & 0xff))) {
s->cnt = 0;
s->val = NO_KEY;
//printf("thrice pressed\n");
return (KEY_THREE | (key_val & 0xff)); //三击按键
}
return key_return;
}
#endif // USER_KEY_THRICE_EN