forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-09 d6ce00f6b68d3d1ecaf44c972909f311ac1d3bf8
Function/POWER_MANAGE/power_manage.h
New file
@@ -0,0 +1,126 @@
#ifndef _POWER_MANAGE_H_
#define _POWER_MANAGE_H_
#include "define_all.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 LITHIUM_DETECTION_PORT   GPIOF
#define LITHIUM_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 ALKALI_PWR_LOSE_PORT    GPIOH
#define ALKALI_PWR_LOSE_PIN    GPIO_Pin_0
// ¼îµç¼ì²â¿ª¹Ø
#define ALKALI_DETECTION_PORT    GPIOF
#define ALKALI_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 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 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   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
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,
}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 GetBatVoltagePro(PWR_VOL_T * pwr_vol_p);
#endif