Browse Source

update

master
zwsd 3 years ago
parent
commit
8fd261ea98
  1. 41
      APP/key.c

41
APP/key.c

@ -18,17 +18,50 @@ void key_init(key_module_t *key_module) {
}
void key_do_loop_in_each_period() {
//
if (!s_inited) {
return;
}
//
for (int i = 0; i < key_module_s->nkey; i++) {
// printf("key_name:%s\n", key_module_s->keys[i].name);
key_process_each(&key_module_s->keys[i]);
}
}
static void prv_zkey_process_each_after_filter(key_t *each, bool now_io_state) {
if (now_io_state != each->last_io_state) {
if (now_io_state) {
each->keep_state_count = 0;
each->hasProcessed = false;
each->cur_state = zks_rising_edge;
key_module_s->onkey(each, each->cur_state);
} else {
each->cur_state = zks_falling_edge;
key_module_s->onkey(each, each->cur_state);
each->keep_state_count = 0;
}
each->last_io_state = now_io_state;
} else {
each->cur_state = zks_keep;
if (now_io_state) {
key_module_s->onkey(each, each->cur_state);
}
}
}
void key_process_each(key_t *each) {
each->keep_state_count++;
bool now_io_state = each->get_key_state(); //io状态
if (!now_io_state) {
key_module_s->onkey(each, zks_rising_edge);
}
bool now_io_state = each->get_key_state(); //io状态 true未按下 false按下
// if (now_io_state != each->last_io_state) {
// each->keep_state_count = 0;
// }
each->after_filter_state = now_io_state;
each->last_real_state = now_io_state;
prv_zkey_process_each_after_filter(each, each->after_filter_state);
}
Loading…
Cancel
Save