#ifndef _POWER_MANAGE_H_ #define _POWER_MANAGE_H_ #include "define_all.h" #include "extern_rtc.h" // µçÁ¿²ÎÊý±ê־λÉèÖà #define __VCC_PARA_FLAG_SET_(__HANDLE__) ((&pwr_vol_g)->__HANDLE__ = SET) // µçÁ¿²ÎÊý±ê־λÇå³ý #define __VCC_PARA_FLAG_CLEAR_(__HANDLE__) ((&pwr_vol_g)->__HANDLE__ = RESET) // ﮵綪ʧ #define LITH_PWR_LOSE_PORT GPIOD #define LITH_PWR_LOSE_PIN GPIO_Pin_0 #define LITH_PWR_LOSE_IO_READ GPIO_ReadInputDataBit(LITH_PWR_LOSE_PORT, LITH_PWR_LOSE_PIN) // ﮵ç¼ì²â¿ª¹Ø #define LITH_DETECTION_PORT GPIOF #define LITH_DETECTION_PIN GPIO_Pin_3 #define LIT_DEC_ON GPIO_SetBits(LITH_DETECTION_PORT,LITH_DETECTION_PIN) #define LIT_DEC_OFF GPIO_ResetBits(LITH_DETECTION_PORT,LITH_DETECTION_PIN) // ¼îµç¶ªÊ§ #define ALKA_PWR_LOSE_PORT GPIOF #define ALKA_PWR_LOSE_PIN GPIO_Pin_11 #define ALKA_PWR_LOSE_IO_READ GPIO_ReadInputDataBit(ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN) // ¼îµç¼ì²â¿ª¹Ø #define ALKA_DETECTION_PORT GPIOF #define ALKA_DETECTION_PIN GPIO_Pin_4 #define ALK_DEC_ON GPIO_SetBits(ALKA_DETECTION_PORT,ALKA_DETECTION_PIN) #define ALK_DEC_OFF GPIO_ResetBits(ALKA_DETECTION_PORT,ALKA_DETECTION_PIN) // ½èµç #define BORROW_PWR_PORT GPIOG #define BORROW_PWR_PIN GPIO_Pin_2 #define BORROW_PWR_ON GPIO_ResetBits(BORROW_PWR_PORT,BORROW_PWR_PIN) #define BORROW_PWR_OFF GPIO_SetBits(BORROW_PWR_PORT,BORROW_PWR_PIN) //Íâµç¼ì²â¶Ë¿Ú #define HWIDO_EX_PWR_PORT GPIOF #define HWIDO_EX_PWR_PIN GPIO_Pin_5 #define HWIDO_EX_PWR_IO_READ GPIO_ReadInputDataBit(HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN) //Íâµç¿ØÖÆ¶Ë¿Ú #define EX_PWR_EN_PORT GPIOG #define EX_PWR_EN_PIN GPIO_Pin_3 #define EX_PWR_ON GPIO_SetBits(EX_PWR_EN_PORT,EX_PWR_EN_PIN) #define EX_PWR_OFF GPIO_ResetBits(EX_PWR_EN_PORT,EX_PWR_EN_PIN) //¼îµçÏÞÁ÷ÅжÏÒý½Å #define LIMIT_TRIGGER_PORT GPIOC #define LIMIT_TRIGGER_PIN GPIO_Pin_13 #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 4 #define AD_LITH_BAT_CNT 8 #define LITH_VOL_COE 2.01f #define AD_ALKA_BAT_REF_VOL 5.0f #define AD_ALKA_BAT_CH 8 #define AD_ALKA_BAT_CNT 8 #define ALKA_VOL_COE 3.14f #define AD_VTEM_CH ADC_CFGR_BUFSEL_TS #define AD_VTEM_CNT 8 //Ê£ÓàµçÁ¿°Ù·Ö±È¼¶Êý #define BAT_PERSENT_LEVEL_3 70 #define BAT_PERSENT_LEVEL_2 40 #define BAT_PERSENT_LEVEL_1 20 #define BAT_PERSENT_LEVEL_0 0 typedef enum { LMS_NONE, LMS_PERIOD, LMS_KEY, LMS_OPEN_VALVE_BEFORE, }LITH_MEASURE_STATUS; typedef enum { AMS_NONE, AMS_PERIOD, AMS_KEY, AMS_WRC_BEFORE, AMS_VALVE_CTRL_BEFORE }ALKA_MEASURE_STATUS; typedef enum { BAT_V_NONE, //ÎÞ״̬ // BAT_V_LOSE, //¶ªÊ§£¬¼´¼ì²âµçѹ¼«µÍ£¬ÈÏΪµç³Ø¶ªÊ§ BAT_V_DOWN, //Ƿѹ BAT_V_LOW, //µÍµç }BAT_V_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ζȱê־λ FlagStatus lith_lose_check_flag; //´¥·¢ï®µçµôµç¼ì²â±êÖ¾ FlagStatus alka_lose_check_flag; //´¥·¢¼îµçµôµç¼ì²â±êÖ¾ float lith_vcc; BAT_V_STATUS lith_vcc_status; float alka_vcc; BAT_V_STATUS alka_vcc_status; float mcu_temperature; int8_t lith_vcc_per; //¸ù¾Ýµçѹ¼ÆËãµÄ°Ù·Ö±È int8_t lith_remain_use_time_per; //¸ù¾ÝʹÓÃʱ¼ä¼ÆËãµÄÊ£Óà°Ù·Ö±È int8_t lith_synthesize_per; //¸ù¾ÝµçѹºÍʹÓÃʱ¼äºÏ³ÉµÄ°Ù·Ö±È£¬×îÖÕ¶ÔÍâÊä³öµÄ°Ù·Ö±È int8_t alka_vcc_per; //¸ù¾Ýµçѹ¼ÆËãµÄ°Ù·Ö±È int8_t ex_pwr_in_cnt; //Íâµç´æÔÚÁ¬Ðø¼ÆÊý int8_t ex_pwr_out_cnt; //Íâµç²»´æÔÚÁ¬Ðø¼ÆÊý }PWR_VOL_T; #pragma pack() typedef struct { sClockBCD record_time_BCD; uint32_t trigger_times; uint8_t RS485_running_flag; uint8_t valve_running_flag; uint8_t wrc_running_flag; uint8_t EXPWR_check_status; //Íâµç¼ì²â״̬£¬ÊÇ·ñÓÐÍâµç½ÓÈë uint8_t EXPWR_ctrl_status; //Íâµç¿ØÖÆ×´Ì¬£¬µ±Ç°ÊÇ·ñÓÉÍâµç¹©µç }LIMIT_TRIGGER_RECORD_PARA_T; extern uint8_t first_power_get_cnt_g; extern PWR_VOL_T pwr_vol_g; extern LIMIT_TRIGGER_RECORD_PARA_T limit_trigger_record_para_g; void Power_IO_Init(void); void borrow_Pwr_GPIO_Clk_Init(void); float Get_Alka_Bat_Voltage(void); float Get_Lith_Bat_Voltage(void); void GetPwrStatusPro(PWR_VOL_T * pwr_vol_p); void PowerManagrInit(void); #endif