#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 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 ALKALI_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 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_GPRS_BEFORE,
|
}ALKA_MEASURE_STATUS;
|
|
#pragma pack(1)
|
//ÈáÐÔÊý×é
|
//Óŵ㣺ʹÓöѿռ䣬µØÖ·Á¬Ðø¼õÉÙË鯬Äڴ棨Ïà¶ÔÖ¸ÕëÊý¾Ý£©
|
//ȱµã£ºÃ¿´ÎʹÓÃÍêÐèÒªÊÖ¶¯ÊÍ·Å
|
typedef struct ad_data_get{
|
uint8_t 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);
|
|
|
#endif
|