#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
|