2 changed files with 43 additions and 22 deletions
-
37APP/key.c
-
28APP/main.c
@ -1,23 +1,34 @@ |
|||||
#include "key.h" |
#include "key.h" |
||||
|
|
||||
#include <stdio.h> |
#include <stdio.h> |
||||
|
|
||||
|
static bool s_inited; |
||||
|
|
||||
key_module_t *key_module_s; |
key_module_t *key_module_s; |
||||
|
|
||||
void key_init(key_module_t *key_module) |
|
||||
{ |
|
||||
key_module_s = key_module; |
|
||||
|
void key_init(key_module_t *key_module) { |
||||
|
key_module_s = key_module; |
||||
|
s_inited = true; //标志位说明按键初始化完成 |
||||
|
|
||||
|
for (int i = 0; i < key_module_s->nkey; i++) { |
||||
|
key_module_s->keys[i].cur_state = zks_keep; |
||||
|
key_module_s->keys[i].last_io_state = key_module_s->keys[i].get_key_state(); |
||||
|
key_module_s->keys[i].after_filter_state = key_module_s->keys[i].get_key_state(); |
||||
|
} |
||||
} |
} |
||||
|
|
||||
void key_do_loop_in_each_period() |
|
||||
{ |
|
||||
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]); |
|
||||
} |
|
||||
|
void key_do_loop_in_each_period() { |
||||
|
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]); |
||||
|
} |
||||
} |
} |
||||
|
|
||||
void key_process_each(key_t *each) |
|
||||
{ |
|
||||
key_module_s->onkey(each,1); |
|
||||
|
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); |
||||
|
} |
||||
} |
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue