shark_charge.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "shark_types.h"
  3. #include "common.h"
  4. #define SHARK_CHG_TIME_DETECT 10
  5. #define SHARK_CHG_TIME_SWITCH 12
  6. #define SHARK_CHG_INSERT_MIN 50
  7. #define SHARK_CHG_REMOVE_MIN 2000
  8. #define GPIO_PORT_CHG_DET GPIOC
  9. #define GPIO_PIN_CHG_DET GPIO_PIN_4
  10. #define GPIO_RCU_CHG_DET RCU_GPIOC
  11. #define GPIO_PORT_CHG_EN GPIOB
  12. #define GPIO_PIN_CHG_EN GPIO_PIN_12
  13. #define GPIO_RCU_CHG_EN RCU_GPIOB
  14. #define EXTI_PORT_CHG_DET GPIO_PORT_SOURCE_GPIOC
  15. #define EXTI_PIN_CHG_DET GPIO_PIN_SOURCE_4
  16. #define EXTI_CHG_DET EXTI_4
  17. typedef enum {
  18. SHARK_CHG_REMOVE,
  19. SHARK_CHG_DETECT,
  20. SHARK_CHG_INSERT,
  21. } shark_charger_state_t;
  22. extern shark_charger_state_t shark_charger_state;
  23. extern shark_bool shark_charger_enabled;
  24. extern shark_bool shark_charger_valid;
  25. extern shark_bool shark_battery_full;
  26. extern shark_u32 shark_charge_time;
  27. void shark_charger_set_enable(shark_bool enable);
  28. shark_bool shark_battery_charge_full(void);
  29. shark_bool shark_charger_is_normal(void);
  30. shark_bool shark_charger_is_allow(void);
  31. void shark_charger_set_poll(void);
  32. void shark_charger_disable(void);
  33. void shark_charge_init(void);
  34. void shark_charge_tick(void);
  35. void shark_charge_poll(void);
  36. void shark_charge_isr(void);
  37. static inline shark_u32 shark_charge_get_time(void)
  38. {
  39. return shark_get_seconds() - shark_charge_time;
  40. }