#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 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 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,
|
}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;
|
|
#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;
|
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;
|
|
|
|
|
|
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 GetPwrStatusPro(PWR_VOL_T * pwr_vol_p);
|
|
void PowerManagrInit(void);
|
|
#endif
|