You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include <stdbool.h> //定义布尔
#include <string.h>
#include "key.h"
#include "port.h"
#include "systicket.h"
static key_t s_keys[] = { s_key_init("powerkey", port_gpio_get_power_key_state), s_key_init("levelkey", port_gpio_get_level_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() { port_debug_set(false); port_fan_set(false); port_led0_set(false); port_led1_set(false); port_led2_set(false); port_led3_set(false); port_led_r_set(false); port_led_g_set(false); port_led_b_set(false); }
key_module_t key_module = key_module_init(s_keys, onkey);
void hardware_init() { SystemInit(); //配置系统时钟
DeviceClockAllEnable(); //打开所有外设时钟
systicket_init(); port_init(); } void hardware_default_settings() { mf_init_all_subdevice_state(); }
void flip_debuf_light_level() { static uint8_t debug_led_state = 1; debug_led_state = !debug_led_state; port_debug_set(debug_led_state); }
int main() { hardware_init(); hardware_default_settings();
key_init(&key_module);
while (true) { // scan key
DO_IT_EACH_MS(1000) { key_do_loop_in_each_period(); }; END();
// debug light
DO_IT_EACH_MS(150) { flip_debuf_light_level(); } END(); }
return 0; }
|