| | |
| | | |
| | | |
| | | uint8_t first_power_get_cnt_g = 0; |
| | | |
| | | LIMIT_TRIGGER_RECORD_PARA_T limit_trigger_record_para_g; |
| | | |
| | | void Power_IO_Init(void) |
| | | { |
| | |
| | | OutputIO(EX_PWR_EN_PORT,EX_PWR_EN_PIN,OUT_PUSHPULL); |
| | | BORROW_PWR_OFF; |
| | | EX_PWR_OFF; |
| | | |
| | | InputtIO( LIMIT_TRIGGER_PORT, LIMIT_TRIGGER_PIN, IN_NORMAL); |
| | | } |
| | | |
| | | void Lith_Battery_GPIO_Clk_Init(void) |
| | |
| | | { |
| | | CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý |
| | | InputtIO( HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN, IN_NORMAL); |
| | | OutputIO(EX_PWR_EN_PORT,EX_PWR_EN_PIN,OUT_PUSHPULL); |
| | | } |
| | | |
| | | void borrow_Pwr_GPIO_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý |
| | | InputtIO( BORROW_PWR_PORT, BORROW_PWR_PIN, IN_NORMAL); |
| | | } |
| | | |
| | | |
| | | /****************************************** |
| | | * func: Get_vol_Average |
| | |
| | | } |
| | | |
| | | if(pwr_vol_p->lith_vcc_status == BAT_V_DOWN){ |
| | | __SYS_STATUS_BYTES_STATUS(lith_down, SET, ALARM_ID_LITH_BAT_DOWN); |
| | | __SYS_STATUS_BYTES_STATUS(lith_low, SET, ALARM_ID_LITH_BAT_LOW); |
| | | __SYS_STATUS_ALARM_BYTES_SET(lith_down, ALARM_ID_LITH_BAT_DOWN); |
| | | __SYS_STATUS_ALARM_BYTES_SET(lith_low, ALARM_ID_LITH_BAT_LOW); |
| | | pwr_vol_p->lith_synthesize_per = 0; |
| | | }else if(pwr_vol_p->lith_vcc_status == BAT_V_LOW){ |
| | | __SYS_STATUS_BYTES_STATUS(lith_down, RESET, ALARM_ID_LITH_BAT_DOWN); |
| | | __SYS_STATUS_BYTES_STATUS(lith_low, SET, ALARM_ID_LITH_BAT_LOW); |
| | | __SYS_STATUS_ALARM_BYTES_SET(lith_low, ALARM_ID_LITH_BAT_LOW); |
| | | pwr_vol_p->lith_synthesize_per = pwr_vol_p->alka_vcc_per; |
| | | }else{ |
| | | pwr_vol_p->lith_synthesize_per = (pwr_vol_p->lith_remain_use_time_per ==100)? 100:pwr_vol_p->lith_remain_use_time_per + 1; //ΪÁË100%Äܹ»Î¬³ÖÒ»¶Îʱ¼ä£¬µçѹÕý³£×´Ì¬Ê±°Ù·Ö±È²»ÄÜΪ0£¬Îª0¾ÍÒªÏÔʾ¿ÕÁË£¬±£³Ö1¸ñÖÁµçѹ״̬±äΪǷѹ |
| | | |
| | | if(pwr_vol_p->lith_synthesize_per < 20){ |
| | | __SYS_STATUS_BYTES_STATUS(lith_down, RESET, ALARM_ID_LITH_BAT_DOWN); |
| | | __SYS_STATUS_BYTES_STATUS(lith_low, SET, ALARM_ID_LITH_BAT_LOW); |
| | | __SYS_STATUS_ALARM_BYTES_SET(lith_low, ALARM_ID_LITH_BAT_LOW); |
| | | }else{ |
| | | __SYS_STATUS_BYTES_STATUS(lith_down, RESET, ALARM_ID_LITH_BAT_DOWN); |
| | | __SYS_STATUS_BYTES_STATUS(lith_low, RESET, ALARM_ID_LITH_BAT_LOW); |
| | | } |
| | | |
| | | } |
| | | /*¼îµç³Ø¿ÉÄܸù¾ÝʹÓôÎÊý£¬¶ø²»ÊÇʱ¼ä£¬×îÖÕ״̬ÅжϷ½Ê½´ý¶¨£¿*/ |
| | | /*¼îµç³Ø¿ÉÄܸù¾ÝʹÓôÎÊý£¬¶ø²»ÊÇʱ¼ä£¬×îÖÕ״̬ÅжϷ½Ê½´ý¶¨£¿ÔÝʱ»¹Ö»ÊǸù¾Ýµçѹֵ*/ |
| | | if(pwr_vol_p->alka_vcc_status == BAT_V_DOWN){ |
| | | __SYS_STATUS_ALARM_BYTES_SET(alka_down, ALARM_ID_ALKA_BAT_DOWN); |
| | | __SYS_STATUS_ALARM_BYTES_SET(alka_low, ALARM_ID_ALKA_BAT_LOW); |
| | | }else if(pwr_vol_p->alka_vcc_status == BAT_V_LOW){ |
| | | __SYS_STATUS_BYTES_STATUS(alka_down, RESET, ALARM_ID_ALKA_BAT_DOWN); |
| | | __SYS_STATUS_ALARM_BYTES_SET(alka_low, ALARM_ID_ALKA_BAT_LOW); |
| | | }else{ |
| | | __SYS_STATUS_BYTES_STATUS(alka_down, RESET, ALARM_ID_ALKA_BAT_DOWN); |
| | | __SYS_STATUS_BYTES_STATUS(alka_low, RESET, ALARM_ID_ALKA_BAT_LOW); |
| | | } |
| | | |
| | | |
| | | |
| | | /****Íâµçʵʱ¼à²â******/ |
| | | /****Íâµçʵʱ¼à²â,Íâµç½ÓÈëÑÓ³Ù£¬ÍâµçÒÆ³ýҪ˲¼äÇл»»Øµç³Ø¹©µç******/ |
| | | EX_Pwr_GPIO_Clk_Init(); |
| | | if(HWIDO_EX_PWR_IO_READ == Bit_RESET){ |
| | | if((pwr_vol_p->ex_pwr_out_cnt!=0)&&(pwr_vol_p->ex_pwr_out_cnt!=EX_PWR_CONTINUE_TIME)){ |
| | | //³ÖÐøÖÐ;״̬¸Ä±ä£¬¿ÉÄÜ´ú±íÍâµç²»Îȶ¨£¬Æµ·±³öÏÖÔò±¨¾¯ |
| | | //³ÖÐøÖÐ;״̬¸Ä±ä£¬¿ÉÄÜ´ú±íÍâµç²»Îȶ¨£¬Æµ·±³öÏÖÔò±¨¾¯ |
| | | } |
| | | pwr_vol_p->ex_pwr_out_cnt = 0; |
| | | if(pwr_vol_p->ex_pwr_in_cnt < EX_PWR_CONTINUE_TIME ) |
| | |
| | | if(__SYS_STATUS_BYTES_GET(power_state) != SET){ |
| | | EX_PWR_ON; |
| | | __SYS_STATUS_BYTES_STATUS(power_state, SET, ALARM_ID_NORMAL); |
| | | //Íâµç½ÓÈëÖ®ºó´ò¿ªÍâµçÒÆ³ýÖжϣ¬ÍâµçÒÆ³ýÒªÁ¢¼´Çл»µç³Ø¹©µç |
| | | GPIO_EXTI_Init( HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN, EXTI_RISING, ENABLE); |
| | | |
| | | up_comm_uart_enable();//ÍâµçʱʹÄÜÉÏλ»ú´®¿Ú |
| | | |
| | |
| | | } |
| | | }else |
| | | { |
| | | if((pwr_vol_p->ex_pwr_in_cnt!=0)&&(pwr_vol_p->ex_pwr_in_cnt!=EX_PWR_CONTINUE_TIME)){ |
| | | //³ÖÐøÖÐ;״̬¸Ä±ä£¬¿ÉÄÜ´ú±íÍâµç²»Îȶ¨£¬Æµ·±³öÏÖÔò±¨¾¯ |
| | | } |
| | | pwr_vol_p->ex_pwr_in_cnt = 0; |
| | | if(pwr_vol_p->ex_pwr_out_cnt < EX_PWR_CONTINUE_TIME ) |
| | | pwr_vol_p->ex_pwr_out_cnt++; |
| | | GPIO_EXTI_Init( HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN, EXTI_RISING, DISABLE); |
| | | EX_PWR_OFF; |
| | | __SYS_STATUS_BYTES_STATUS(power_state, RESET, ALARM_ID_NORMAL); |
| | | |
| | | if(pwr_vol_p->ex_pwr_out_cnt >=EX_PWR_CONTINUE_TIME){ |
| | | if(__SYS_STATUS_BYTES_GET(power_state) != RESET){ |
| | | EX_PWR_OFF; |
| | | __SYS_STATUS_BYTES_STATUS(power_state, RESET, ALARM_ID_NORMAL); |
| | | //?Ìí¼ÓÍâµç±ä»¯±¨¾¯ |
| | | } |
| | | } |
| | | // if((pwr_vol_p->ex_pwr_in_cnt!=0)&&(pwr_vol_p->ex_pwr_in_cnt!=EX_PWR_CONTINUE_TIME)){ |
| | | // //³ÖÐøÖÐ;״̬¸Ä±ä£¬¿ÉÄÜ´ú±íÍâµç²»Îȶ¨£¬Æµ·±³öÏÖÔò±¨¾¯ |
| | | // } |
| | | // pwr_vol_p->ex_pwr_in_cnt = 0; |
| | | // if(pwr_vol_p->ex_pwr_out_cnt < EX_PWR_CONTINUE_TIME ) |
| | | // pwr_vol_p->ex_pwr_out_cnt++; |
| | | // |
| | | // if(pwr_vol_p->ex_pwr_out_cnt >=EX_PWR_CONTINUE_TIME){ |
| | | // if(__SYS_STATUS_BYTES_GET(power_state) != RESET){ |
| | | // EX_PWR_OFF; |
| | | // __SYS_STATUS_BYTES_STATUS(power_state, RESET, ALARM_ID_NORMAL); |
| | | // //?Ìí¼ÓÍâµç±ä»¯±¨¾¯ |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | |