#ifndef _POWER_MANAGE_H_ #define _POWER_MANAGE_H_ #include "define_all.h" #include "administrator.h" // µçÁ¿²ÎÊý±ê־λÉèÖà #define __VCC_PARA_FLAG_SET_(__HANDLE__) ((&pwr_vol_g)->__HANDLE__ = SET) // µçÁ¿²ÎÊý±ê־λÇå³ý #define __VCC_PARA_FLAG_CLEAR_(__HANDLE__) ((&pwr_vol_g)->__HANDLE__ = RESET) // ﮵çµôµç #define LITHIUM_PWR_DOWN_PORT GPIOF #define LITHIUM_PWR_DOWN_PIN GPIO_Pin_11 // ﮵çǷѹ #define LIT_PWR_UNDER_PORT GPIOF #define LIT_PWR_UNDER_PIN GPIO_Pin_6 // ﮵ç¼ì²â¿ª¹Ø #define LITHIUM_DETECTION_PORT GPIOD #define LITHIUM_DETECTION_PIN GPIO_Pin_2 #define LIT_DEC_ON GPIO_SetBits(LITHIUM_DETECTION_PORT, LITHIUM_DETECTION_PIN) #define LIT_DEC_OFF GPIO_ResetBits(LITHIUM_DETECTION_PORT, LITHIUM_DETECTION_PIN) // ¼îµçµôµç #define ALKALI_PWR_DOWN_PORT GPIOA #define ALKALI_PWR_DOWN_PIN GPIO_Pin_4 // ¼îµç¼ì²â¿ª¹Ø #define ALKALI_DETECTION_PORT GPIOB #define LITH_TEST_ENALKALI_DETECTION_PIN GPIO_Pin_2 #define ALK_DEC_ON GPIO_SetBits(ALKALI_DETECTION_PORT, ALKALI_DETECTION_PIN) #define ALK_DEC_OFF GPIO_ResetBits(ALKALI_DETECTION_PORT, ALKALI_DETECTION_PIN) #define Ad_LITH_PF6_BAT_CH 5 #define Ad_LITH_PF6_BAT_CNT 8 #define LITH_PF6_VOL_COE 1.206f #define Ad_LITH_BAT_REF_VOL 5.0f #define Ad_LITH_BAT_CH 5 #define Ad_LITH_BAT_CNT 8 #define LITH_VOL_COE 3.20 // 2.01f #define Ad_ALKA_BAT_REF_VOL 5.0f #define Ad_ALKA_BAT_CH 10 #define Ad_ALKA_BAT_CNT 8 #define ALKA_VOL_COE 2.70 // 3.14f #define AD_VTEM_CH ADC_CFGR_BUFSEL_TS #define AD_VTEM_CNT 8 typedef enum { LMS_NONE, LMS_PERIOD, LMS_KEY, LMS_OPEN_VALVE_BEFORE, } LITH_MEASURE_STATUS; typedef enum { AMS_NONE, AMS_PERIOD, AMS_KEY, AMS_GPRS_BEFORE, } ALKA_MEASURE_STATUS; #pragma pack(1) // ÈáÐÔÊý×é // Óŵ㣺ʹÓöѿռ䣬µØÖ·Á¬Ðø¼õÉÙË鯬Äڴ棨Ïà¶ÔÖ¸ÕëÊý¾Ý£© // ȱµã£ºÃ¿´ÎʹÓÃÍêÐèÒªÊÖ¶¯ÊÍ·Å typedef struct ad_data_get { u8 ad_ch; u16 ad_buffer_cnt; uint32_t ad_get_buffer[]; } ad_data_s; typedef struct pwr_vol { LITH_MEASURE_STATUS lith_flag; // µçÁ¿²âÁ¿±ê־λ ALKA_MEASURE_STATUS alka_flag; FlagStatus mcu_temp_flag; // mcuζȱê־λ float lith_vcc; float alka_vcc; float mcu_temperature; int8_t lith_vcc_per; } PWR_VOL_T; #pragma pack() extern uint8_t sys_bst_flag; extern uint8_t first_power_get_cnt_g; extern PWR_VOL_T pwr_vol_g; void Power_IO_Init(void); float Get_Alka_Bat_Voltage(void); float Get_Lith_Bat_Voltage(void); void Get_Double_Bat_Voltage(PWR_VOL_T *pwr_vol_p); uint32_t Get_vol_average(ad_data_s *data_p); float Get_Mcu_Temp(void); #endif