| | |
| | | #include "system_eep_mem_manage.h" |
| | | #include "system_mem_para.h" |
| | | #include "eeprom.h" |
| | | #include "mbcrc.h" |
| | | #include "mbcrc1.h" |
| | | #include "gpio.h" |
| | | #include "extern_rtc.h" |
| | | #include "key.h" |
| | | #include "lcd_io_api.h" |
| | | #include "wireless_remote_comm.h" |
| | | #include "power_manage.h" |
| | | #include "pulse_and_alarm_line.h" |
| | | #include "valve_control.h" |
| | | #include "linked_list.h" |
| | | |
| | | |
| | | RS485_START_REASON start_rs485_g = RS485_START_REASON_NONE; |
| | | WRC_START_MEANS start_wrc_g = WRC_MEANS_NONE; |
| | |
| | | |
| | | void allGpioInit(void) |
| | | { |
| | | |
| | | E2P_Ctrl_Gpio_Init(); |
| | | |
| | | RTC_GPIO_Init(); |
| | | |
| | | Key_GPIO_Init(); |
| | |
| | | |
| | | Power_IO_Init();//µçÔ´Ïà¹Ø |
| | | |
| | | Valve_CTRL_GPIO_Init(); |
| | | |
| | | Pulse_And_Alarm_Line_IO_Init(); |
| | | |
| | | RS485_read_data_GPIO_Init(); |
| | | |
| | | WRC_PWR_GPIO_Init(); //ÎÞÏßÔ¶´«µçÔ´¿ØÖÆIO |
| | | } |
| | | |
| | | //ËùÓÐÍâÉèÇý¶¯ÅäÖà |
| | |
| | | GPIO_EXTI_Init( KEY1_PORT, KEY1_PIN, EXTI_FALLING, ENABLE); |
| | | GPIO_EXTI_Init( KEY2_PORT, KEY2_PIN, EXTI_FALLING, ENABLE); |
| | | GPIO_EXTI_Init( KEY3_PORT, KEY3_PIN, EXTI_FALLING, ENABLE); |
| | | GPIO_EXTI_Init( KEY4_PORT, KEY4_PIN, EXTI_FALLING, ENABLE); |
| | | // GPIO_EXTI_Init( KEY4_PORT, KEY4_PIN, EXTI_FALLING, ENABLE); |
| | | |
| | | GPIO_EXTI_Init( LITH_PWR_LOSE_PORT, LITH_PWR_LOSE_PIN, EXTI_FALLING, ENABLE); |
| | | GPIO_EXTI_Init( ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN, EXTI_FALLING, ENABLE); |
| | | // GPIO_EXTI_Init( ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN, EXTI_FALLING, ENABLE); |
| | | |
| | | GPIO_EXTI_Init( LIMIT_TRIGGER_PORT, LIMIT_TRIGGER_PIN, EXTI_FALLING, ENABLE); |
| | | |
| | | /*Âö³åÏßÖжÏÅäÖÃÑ¡Ôñ,û¿ªÆô¸´ÓÃÇÒ¿ªÆôÁËÂö³å*/ |
| | | if(((flow_meter_para_g.broken_line_multiplex & BROKEN_LINE_MUTIPLEX_PULSE)!=BROKEN_LINE_MUTIPLEX_PULSE)&& \ |
| | | ((flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_PULSE)||(flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_RS485_AND_PULSE))){ |
| | | if((flow_meter_para_g.flow_meter_code !=ASMODBUS)&&(flow_meter_para_g.flow_meter_code !=AS100MODBUS)&&(flow_meter_para_g.flow_meter_code !=SIARGO_MODBUS)){ |
| | | GPIO_EXTI_Init( LF_PULSE_INT_PORT, LF_PULSE_INT_PIN, EXTI_FALLING, ENABLE); |
| | | }else{ |
| | | GPIO_EXTI_Init( LF_PULSE_INT_PORT, LF_PULSE_INT_PIN, EXTI_RISING, ENABLE); |
| | | } |
| | | } |
| | | |
| | | /*NVICÖжÏÅäÖÃ*/ |
| | | NVIC_DisableIRQ(GPIO_IRQn); |
| | |
| | | SYSTEM_EEP_IDENTIFICATION_T sys_eep_id_A_l={0}; |
| | | SYSTEM_EEP_IDENTIFICATION_T sys_eep_id_B_l={0}; |
| | | uint8_t eep_none_flag = 1; //0´ú±í¿Õ£¬·Ç0´ú±í·Ç¿Õ |
| | | uint8_t buf_test[8]; |
| | | |
| | | //?²âÊÔÌí¼Ó |
| | | // EEPROM_test(); |
| | | |
| | | |
| | | EEPROM_CTRL_ENABLE; |
| | | EEPROM_MultipleRead(buf_test, 0, 1);//?·¢ÏÖ´æ´¢µÚÒ»´Î²Ù×÷ÓÐÎÊÌ⣬ҪÏȲÙ×÷Ò»´Î£¬ºóÐø²Ù×÷¶¼Õý³£ |
| | | |
| | | //¶ÁÈ¡²ÎÊý³õʼ»¯ÅäÖñêʶ |
| | | //Èç¹û±êʶÎÞ·¨Ê¶±ðÔò´ú±í´æ´¢ÐèҪȫ²¿Ð´ÈëĬÈÏÖµ |
| | |
| | | //Èç¹û²¹¶¡±êʶÎÞ·¨Ê¶±ð»òÕßСÓÚ²¹¶¡Ê±¼ä£¬ÔòÐèÒª´ò²¹¶¡´¦Àí |
| | | allParaPatchPro(); |
| | | |
| | | EEPROM_CTRL_DISABLE; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | //¸÷ÖÖ¹¦ÄÜÄ£¿éÔËÐÐËùÐèµÄ²ÎÊý³õʼ»¯ |
| | | |
| | | /*״̬×Ö³õʼ*/ |
| | | system_status_word_g.status_word.account_state = (system_function_ctrl_word_g.fun_ctrl_word.account_open == 1)?1:0; |
| | | system_status_word_g.status_word.valve_lock = (save_valve_para_g.valve_lock_state == VL_LOCK)?1:0; |
| | | system_status_word_g.status_word.virtual_billing = (system_function_ctrl_word_g.fun_ctrl_word.virtual_billing == 1)?1:0; |
| | | system_status_word_g.status_word.billing_type = system_function_ctrl_word_g.fun_ctrl_word.billing_type; |
| | | system_status_word_g.status_word.lcd_mode = system_function_ctrl_word_g.fun_ctrl_word.lcd_mode; |
| | | |
| | | /****ÍⲿRTCÅäÖü°²ÎÊý³õʼ»¯***********/ |
| | | Set_Rtc_UpdataInterrupt(); //ÉèÖÃRTCΪÃëÖÐ¶Ï |
| | | //¶ÁÈ¡ÍⲿRTCʱ¼ä£¬ |
| | | if(Get_Extern_Rtc_Time(&sys_clockBCD_g) ==FAIL) |
| | | { |
| | | //²ÉÓÃ´æ´æ´¢¶ÁÈ¡µÄʱ¼äÉèÖõ½RTC |
| | | Set_Extern_Rtc_Time(save_realtime_data_g.record_time_BCD.year,save_realtime_data_g.record_time_BCD.month,save_realtime_data_g.record_time_BCD.day, \ |
| | | 1,save_realtime_data_g.record_time_BCD.hour,save_realtime_data_g.record_time_BCD.min,save_realtime_data_g.record_time_BCD.sec); |
| | | if(Set_Extern_Rtc_Time(save_realtime_data_g.record_time_BCD.year,save_realtime_data_g.record_time_BCD.month,save_realtime_data_g.record_time_BCD.day, \ |
| | | 1,save_realtime_data_g.record_time_BCD.hour,save_realtime_data_g.record_time_BCD.min,save_realtime_data_g.record_time_BCD.sec) ==FAIL){ |
| | | //´æ´¢ÖÐʱ¼ä´íÎóÔòÉèÖÃĬÈÏÖµ |
| | | Set_Extern_Rtc_Time(sys_clockBCD_g.year,sys_clockBCD_g.month,sys_clockBCD_g.day, 1,sys_clockBCD_g.hour,sys_clockBCD_g.min,sys_clockBCD_g.sec) ; |
| | | } |
| | | } |
| | | |
| | | //·§ÃÅÔËÐгõʼ»¯ |
| | |
| | | |
| | | //²ð°å¡¢¿ª¸Ç״̬¼ì²â |
| | | |
| | | //Âö³åÏß״̬¼ì²â |
| | | //Âö³åÏß¡¢±¨¾¯Ïß³õʼ |
| | | PulseAndAlarmLineInit(); |
| | | |
| | | |
| | | |
| | |
| | | start_rs485_g = RS485_START_REASON_RECORD; |
| | | |
| | | |
| | | if(start_rs485_g != RS485_START_REASON_NONE){ |
| | | //Éϱ¨Ö®Ç°´¥·¢²É¼¯ |
| | | if(start_wrc_g != WRC_MEANS_NONE){ |
| | | start_rs485_g = RS485_START_REASON_REPORT; |
| | | } |
| | | |
| | | if(start_rs485_g != RS485_START_REASON_NONE){ |
| | | start_rs485_g = RS485_START_REASON_NONE; |
| | | sys_fun_run_ctrl_p->rs485_ctrl_flag.start_flag = SET; |
| | | if(sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag ==RESET) |
| | | sys_fun_run_ctrl_p->rs485_ctrl_flag.start_flag = SET; |
| | | } |
| | | |
| | | /*·§¿Ø¿ØÖÆ£¬·§¿ØÍ¨¹ý°´¼ü»òÕßÖ¸Áî¡¢Òì³£µÈ¿ØÖÆ£¬ÐèÒª²Ù×÷ʱֱ½Óµ÷ÓÃValveCtrlOrderº¯Êý¼´¿É£¬²»ÔÚ´Ë´¦Æô¶¯*/ |
| | | |
| | | |
| | | /*Ô¶³ÌͨѶÆô¶¯¿ØÖÆ£¬°´¼ü¡¢¼ä¸ô¡¢ÖÜÆÚ¡¢Òì³£±¨¾¯µÈ*/ |
| | | |
| | | /*Ô¶³ÌͨѶÆô¶¯¿ØÖÆ£¬°´¼ü¡¢¼ä¸ô¡¢ÖÜÆÚ¡¢Òì³£±¨¾¯¡¢Öر¨µÈ*/ |
| | | if((wrc_para_sizhu_g.time_start_type&WRC_TIME_START_INTERVAL)==WRC_TIME_START_INTERVAL){ |
| | | for(uint16_t count_i=0;count_i<wrc_para_sizhu_g.timing_send_num;count_i++){ |
| | | if(count_i>=12) |
| | |
| | | start_wrc_g = WRC_MEANS_RTC_INTERVAL; |
| | | } |
| | | |
| | | if((wrc_ctrl_para_g.wrc_restart_num_cnt > 0)&&(wrc_ctrl_para_g.wrc_restart_time_sec_cnt == 0)){ |
| | | if(start_wrc_g == WRC_MEANS_NONE){ |
| | | //´¥·¢Öر¨Éϱ¨ |
| | | start_wrc_g = WRC_MEANS_AGAIN; |
| | | wrc_ctrl_para_g.wrc_restart_num_cnt -- ; |
| | | } |
| | | } |
| | | |
| | | |
| | | if(start_wrc_g != WRC_MEANS_NONE){ |
| | | wrc_ctrl_para_g.wrc_start_flag = start_wrc_g; |
| | | start_wrc_g = WRC_MEANS_NONE; |
| | | sys_fun_run_ctrl_p->wrc_ctrl_flag.start_flag = SET; |
| | | if((sys_fun_run_ctrl_p->wrc_ctrl_flag.start_flag == RESET)&&(sys_fun_run_ctrl_p->wrc_ctrl_flag.running_flag == RESET )){ |
| | | pwr_vol_g.alka_flag = AMS_WRC_BEFORE; |
| | | sys_fun_run_ctrl_p->wrc_ctrl_flag.start_flag = SET; |
| | | } |
| | | } |
| | | |
| | | } |