shark_charge.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "shark_types.h"
  3. #include "common.h"
  4. #define SHARK_CHG_TIME_DETECT 10000
  5. #define SHARK_CHG_TIME_SWITCH 12000
  6. #define SHARK_CHG_TIME_MAX 60000
  7. #define SHARK_CHG_INSERT_MIN 50
  8. #define SHARK_CHG_REMOVE_MIN 1500
  9. #define GPIO_PORT_CHG_DET GPIOC
  10. #define GPIO_PIN_CHG_DET GPIO_PIN_4
  11. #define GPIO_RCU_CHG_DET RCU_GPIOC
  12. #define GPIO_PORT_CHG_EN GPIOB
  13. #define GPIO_PIN_CHG_EN GPIO_PIN_12
  14. #define GPIO_RCU_CHG_EN RCU_GPIOB
  15. #define EXTI_PORT_CHG_DET GPIO_PORT_SOURCE_GPIOC
  16. #define EXTI_PIN_CHG_DET GPIO_PIN_SOURCE_4
  17. #define EXTI_CHG_DET EXTI_4
  18. typedef enum {
  19. SHARK_CHG_REMOVE,
  20. SHARK_CHG_DETECT,
  21. SHARK_CHG_INSERT,
  22. } shark_charger_state_t;
  23. extern shark_charger_state_t shark_charger_state;
  24. extern shark_bool shark_charger_enabled;
  25. extern shark_bool shark_charger_valid;
  26. extern shark_bool shark_battery_full;
  27. extern shark_u16 shark_charge_times;
  28. shark_bool shark_battery_charge_full(void);
  29. void shark_charger_set_enable(shark_bool enable);
  30. void shark_charger_set_state(shark_charger_state_t state);
  31. shark_bool shark_charger_is_normal(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);