#pragma once #include "shark_types.h" #include "common.h" #define SHARK_CHG_DEBOUNCE 300 #define GPIO_PORT_CHG_DET GPIOC #define GPIO_PIN_CHG_DET GPIO_PIN_4 #define GPIO_RCU_CHG_DET RCU_GPIOC #define GPIO_PORT_CHG_EN GPIOB #define GPIO_PIN_CHG_EN GPIO_PIN_12 #define GPIO_RCU_CHG_EN RCU_GPIOB #define EXTI_PORT_CHG_DET GPIO_PORT_SOURCE_GPIOC #define EXTI_PIN_CHG_DET GPIO_PIN_SOURCE_4 #define EXTI_CHG_DET EXTI_4 extern shark_bool shark_charger_detected; extern shark_bool shark_charger_enabled; extern shark_bool shark_battery_full; void shark_charger_set_enable(shark_bool enable); void shark_charge_init(void); void shark_charge_tick(void); void shark_charge_poll(void); void shark_charge_isr(void); static inline shark_bool shark_charger_detect(void) { return !gpio_input_bit_get(GPIO_PORT_CHG_DET, GPIO_PIN_CHG_DET); }