| | |
| | | #ifndef _POWER_MANAGE_H_ |
| | | #define _POWER_MANAGE_H_ |
| | | |
| | | #include "define_all.h" |
| | | #include "extern_rtc.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 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_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 LITH_DETECTION_PORT GPIOF |
| | | #define LITH_DETECTION_PIN GPIO_Pin_3 |
| | | #define LITHIUM_DETECTION_PORT GPIOD |
| | | #define LITHIUM_DETECTION_PIN GPIO_Pin_2 |
| | | |
| | | #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 LIT_DEC_ON GPIO_SetBits(LITHIUM_DETECTION_PORT, LITHIUM_DETECTION_PIN) |
| | | #define LIT_DEC_OFF GPIO_ResetBits(LITHIUM_DETECTION_PORT, LITHIUM_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 ALKALI_PWR_DOWN_PORT GPIOA |
| | | #define ALKALI_PWR_DOWN_PIN GPIO_Pin_4 |
| | | |
| | | // ¼îµç¼ì²â¿ª¹Ø |
| | | #define ALKA_DETECTION_PORT GPIOF |
| | | #define ALKA_DETECTION_PIN GPIO_Pin_4 |
| | | #define ALKALI_DETECTION_PORT GPIOB |
| | | #define LITH_TEST_ENALKALI_DETECTION_PIN GPIO_Pin_2 |
| | | |
| | | #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 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 BORROW_PWR_PORT GPIOG |
| | | #define BORROW_PWR_PIN GPIO_Pin_2 |
| | | #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 BORROW_PWR_ON GPIO_ResetBits(BORROW_PWR_PORT,BORROW_PWR_PIN) |
| | | #define BORROW_PWR_OFF GPIO_SetBits(BORROW_PWR_PORT,BORROW_PWR_PIN) |
| | | #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 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 LIMIT_TRIGGER_PORT GPIOC |
| | | #define LIMIT_TRIGGER_PIN GPIO_Pin_13 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //Ê£ÓàµçÁ¿°Ù·Ö±È¼¶Êý |
| | | #define BAT_PERSENT_LEVEL_3 70 |
| | | #define BAT_PERSENT_LEVEL_2 40 |
| | | #define BAT_PERSENT_LEVEL_1 20 |
| | | #define BAT_PERSENT_LEVEL_0 0 |
| | | |
| | | #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; |
| | | LMS_NONE, |
| | | LMS_PERIOD, |
| | | LMS_KEY, |
| | | LMS_OPEN_VALVE_BEFORE, |
| | | } LITH_MEASURE_STATUS; |
| | | typedef enum |
| | | { |
| | | AMS_NONE, |
| | | AMS_PERIOD, |
| | | AMS_KEY, |
| | | AMS_WRC_BEFORE, |
| | | AMS_VALVE_CTRL_BEFORE |
| | | }ALKA_MEASURE_STATUS; |
| | | AMS_NONE, |
| | | AMS_PERIOD, |
| | | AMS_KEY, |
| | | AMS_GPRS_BEFORE, |
| | | } ALKA_MEASURE_STATUS; |
| | | |
| | | typedef enum |
| | | #pragma pack(1) |
| | | // ÈáÐÔÊý×é |
| | | // Óŵ㣺ʹÓöѿռ䣬µØÖ·Á¬Ðø¼õÉÙË鯬Äڴ棨Ïà¶ÔÖ¸ÕëÊý¾Ý£© |
| | | // ȱµã£ºÃ¿´ÎʹÓÃÍêÐèÒªÊÖ¶¯ÊÍ·Å |
| | | typedef struct ad_data_get |
| | | { |
| | | BAT_V_NONE, //ÎÞ״̬ |
| | | // BAT_V_LOSE, //¶ªÊ§£¬¼´¼ì²âµçѹ¼«µÍ£¬ÈÏΪµç³Ø¶ªÊ§ |
| | | BAT_V_DOWN, //Ƿѹ |
| | | BAT_V_LOW, //µÍµç |
| | | }BAT_V_STATUS; |
| | | u8 ad_ch; |
| | | u16 ad_buffer_cnt; |
| | | uint32_t ad_get_buffer[]; |
| | | } ad_data_s; |
| | | |
| | | |
| | | |
| | | #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ζȱê־λ |
| | | 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; |
| | | 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; //¸ù¾Ýµçѹ¼ÆËãµÄ°Ù·Ö±È |
| | | 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; |
| | | |
| | | int8_t lith_vcc_per; |
| | | } PWR_VOL_T; |
| | | |
| | | #pragma pack() |
| | | |
| | | 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 sys_bst_flag; |
| | | |
| | | 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); |
| | | |
| | | void GetPwrStatusPro(PWR_VOL_T * pwr_vol_p); |
| | | void Get_Double_Bat_Voltage(PWR_VOL_T *pwr_vol_p); |
| | | |
| | | void PowerManagrInit(void); |
| | | |
| | | uint32_t Get_vol_average(ad_data_s *data_p); |
| | | float Get_Mcu_Temp(void); |
| | | #endif |
| | | |
| | | |