forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-29 6c7e61a54ef9b96f79704f0b965664e89f57dd52
Function/POWER_MANAGE/power_manage.h
@@ -2,34 +2,37 @@
#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 GPIOF
#define LITH_PWR_LOSE_PIN    GPIO_Pin_11
// ﮵綪ʧ
#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 LITHIUM_DETECTION_PORT   GPIOF
#define LITHIUM_DETECTION_PIN      GPIO_Pin_3
#define LITH_DETECTION_PORT   GPIOF
#define LITH_DETECTION_PIN      GPIO_Pin_3
#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 LIT_DEC_ON      GPIO_SetBits(LITH_DETECTION_PORT,LITH_DETECTION_PIN)
#define LIT_DEC_OFF      GPIO_ResetBits(LITH_DETECTION_PORT,LITH_DETECTION_PIN)
// ¼îµç¶ªÊ§
#define ALKALI_PWR_LOSE_PORT    GPIOH
#define ALKALI_PWR_LOSE_PIN    GPIO_Pin_0
#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 ALKALI_DETECTION_PORT    GPIOF
#define ALKALI_DETECTION_PIN       GPIO_Pin_4
#define ALKA_DETECTION_PORT    GPIOF
#define ALKA_DETECTION_PIN       GPIO_Pin_4
#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 ALK_DEC_ON      GPIO_SetBits(ALKA_DETECTION_PORT,ALKA_DETECTION_PIN)
#define ALK_DEC_OFF      GPIO_ResetBits(ALKA_DETECTION_PORT,ALKA_DETECTION_PIN)
// ½èµç
@@ -51,23 +54,15 @@
#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
//Ê£ÓàµçÁ¿°Ù·Ö±È¼¶Êý
@@ -90,12 +85,13 @@
   AMS_PERIOD,
   AMS_KEY,
   AMS_WRC_BEFORE,
   AMS_VALVE_CTRL_BEFORE
}ALKA_MEASURE_STATUS;
typedef enum
{
   BAT_V_NONE,  //ÎÞ״̬
   BAT_V_LOSE, //¶ªÊ§£¬¼´¼ì²âµçѹ¼«µÍ£¬ÈÏΪµç³Ø¶ªÊ§
//   BAT_V_LOSE, //¶ªÊ§£¬¼´¼ì²âµçѹ¼«µÍ£¬ÈÏΪµç³Ø¶ªÊ§
   BAT_V_DOWN, //Ƿѹ
   BAT_V_LOW,  //µÍµç
}BAT_V_STATUS;
@@ -112,13 +108,15 @@
   uint32_t   ad_get_buffer[];
}ad_data_s;
#pragma pack()
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;
@@ -126,17 +124,38 @@
  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()
extern uint8_t sys_bst_flag;
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);