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.

64 lines
1.5 KiB

4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. #include <stdbool.h> //定义布尔
  2. #include <string.h>
  3. #include "key.h"
  4. #include "port.h"
  5. #include "systicket.h"
  6. static key_t s_keys[] = {
  7. s_key_init("powerkey", port_gpio_get_power_key_state),
  8. s_key_init("levelkey", port_gpio_get_level_key_state),
  9. };
  10. static void onkey(key_t *key, key_state_t key_state) {
  11. if (strcmp(key->name, "powerkey") && key_state == zks_rising_edge) {
  12. // printf("powerkey\n");
  13. } else if (strcmp(key->name, "levelkey") && key_state == zks_rising_edge) {
  14. // printf("levelkey\n");
  15. }
  16. }
  17. static void mf_init_all_subdevice_state() {
  18. port_debug_set(false);
  19. port_fan_set(false);
  20. port_led0_set(false);
  21. port_led1_set(false);
  22. port_led2_set(false);
  23. port_led3_set(false);
  24. port_led_r_set(false);
  25. port_led_g_set(false);
  26. port_led_b_set(false);
  27. }
  28. key_module_t key_module = key_module_init(s_keys, onkey);
  29. void hardware_init() {
  30. SystemInit(); //配置系统时钟
  31. DeviceClockAllEnable(); //打开所有外设时钟
  32. systicket_init();
  33. port_init();
  34. }
  35. void hardware_default_settings() { mf_init_all_subdevice_state(); }
  36. void flip_debuf_light_level() { /*printf("flip_debuf_light_level\n");*/
  37. }
  38. int main() {
  39. hardware_init();
  40. hardware_default_settings();
  41. key_init(&key_module);
  42. while (true) {
  43. // scan key
  44. DO_IT_EACH_MS(1000) { key_do_loop_in_each_period(); };
  45. END();
  46. // debug light
  47. DO_IT_EACH_MS(2000) { flip_debuf_light_level(); }
  48. END();
  49. }
  50. return 0;
  51. }