hw_config.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * hw_config.h
  3. *
  4. * 可变化的硬件相关逻辑: GPIO 中断、睡眠/唤醒时序、开机初始化、
  5. * 节能曲线表、声音检测。
  6. * 换 PCB / 改引脚 / 调启动流程时只需修改 hw_config.c 即可,
  7. * ukey.c 和 ledx.c 的纯逻辑代码不动。
  8. */
  9. #ifndef HW_CONFIG_H
  10. #define HW_CONFIG_H
  11. #include "CH58x_common.h"
  12. /* struct eco_s 定义在 ledx.h */
  13. /* ---- 原 ukey.c 变量, 此处供 hw_config.c 使用 ---- */
  14. extern uint8_t key_down_counter;
  15. extern uint32_t key_down_time;
  16. extern uint16_t sys_idle_count;
  17. extern BOOL need_pwup;
  18. extern uint32_t sys_open_time;
  19. extern BOOL is_key_down;
  20. extern BOOL skip_this_btn_down;
  21. extern uint8_t count_5;
  22. extern BOOL is_powup_first;
  23. extern BOOL is_iqr_weekup;
  24. /* ---- 其他模块变量 ---- */
  25. extern BOOL isRFOn; /* RF_PHY.c */
  26. extern BOOL IS_RF_INITED; /* RF_main.c */
  27. /* eco_plan[] 定义在 hw_config.c, sizeof 对外部数组不可用,改为手动计数 */
  28. #ifndef ECO_PLAN_LEN
  29. #define ECO_PLAN_LEN 1
  30. #endif
  31. /* ---- 节能状态机 (定义在 hw_config.c) ---- */
  32. extern volatile uint8_t eco_idx;
  33. extern volatile uint16_t eco_sec;
  34. extern volatile uint16_t eco_loop_sec;
  35. uint8_t resetEco(void);
  36. uint8_t changeEco(void);
  37. /* ---- 声音检测 (原 ledx.c static 变量去 static) ---- */
  38. extern uint32_t _led_current_sound_systick;
  39. extern volatile uint16_t inSound;
  40. extern uint8_t sound_debounce_count;
  41. extern uint8_t last_gpio_state;
  42. /* ---- 函数声明 ---- */
  43. __INTERRUPT __HIGH_CODE void GPIOA_IRQHandler(void);
  44. void checkbleOnOrOff(uint32_t key_up_time);
  45. void sw_hal_sleep(void);
  46. void sys_startup(void);
  47. uint8_t catchSound(void);
  48. #endif /* HW_CONFIG_H */