Browse Source

update

master
zwsd 3 years ago
parent
commit
c8c7425dbf
  1. 37
      APP/key.c
  2. 28
      APP/main.c

37
APP/key.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);
}
} }

28
APP/main.c

@ -9,16 +9,10 @@
static key_t s_keys[] = { static key_t s_keys[] = {
s_key_init("powerkey", port_gpio_get_power_key_state), s_key_init("powerkey", port_gpio_get_power_key_state),
s_key_init("levelkey", port_gpio_get_level_key_state), s_key_init("levelkey", port_gpio_get_level_key_state),
s_key_init("timerkey", port_gpio_get_timer_key_state),
s_key_init("intervalkey", port_gpio_get_interval_key_state),
}; };
static void onkey(key_t *key, key_state_t key_state) {
if (strcmp(key->name, "powerkey") && key_state == zks_rising_edge) {
// printf("powerkey\n");
} else if (strcmp(key->name, "levelkey") && key_state == zks_rising_edge) {
// printf("levelkey\n");
}
}
static void mf_init_all_subdevice_state() { static void mf_init_all_subdevice_state() {
port_debug_set(false); port_debug_set(false);
port_fan_set(false); port_fan_set(false);
@ -31,6 +25,22 @@ static void mf_init_all_subdevice_state() {
port_led_b_set(false); port_led_b_set(false);
} }
static void onkey(key_t *key, key_state_t key_state) {
if /* */ (strcmp(key->name, "powerkey") == 0 && zks_rising_edge == key_state) {
printf("powerkey\n");
// mf_process_poweron_key(key);
} else if (strcmp(key->name, "levelkey") == 0 && zks_rising_edge == key_state) {
printf("levelkey\n");
// mf_process_level_key(key);
} else if (strcmp(key->name, "timerkey") == 0 && zks_rising_edge == key_state) {
printf("timerkey\n");
// mf_process_timer_key(key);
} else if (strcmp(key->name, "intervalkey") == 0 && zks_rising_edge == key_state) {
printf("intervalkey\n");
// mf_process_interval_key(key);
}
}
key_module_t key_module = key_module_init(s_keys, onkey); key_module_t key_module = key_module_init(s_keys, onkey);
void hardware_init() { void hardware_init() {
@ -55,7 +65,7 @@ int main() {
while (true) { while (true) {
// scan key // scan key
DO_IT_EACH_MS(1000) { key_do_loop_in_each_period(); };
DO_IT_EACH_MS(20) { key_do_loop_in_each_period(); };
END(); END();
// debug light // debug light

Loading…
Cancel
Save