#include "main.h" #include "gpio.h" #include "rcc_config.h" #include "uart.h" #include "tim.h" #include "rtc.h" #include "exti.h" #include "adc.h" #include "i2c.h" #include "extern_rtc.h" #include "spi.h" #include "eeprom.h" #include "key.h" #include "flash.h" #include "system_run_fun.h" #include "system_general_para.h" #include "lcd.h" #include "upper_com.h" #include "rs485_read_data.h" #include "valve_control.h" #include "wireless_remote_comm.h" #include "sizhu_ctrl_word.h" #include "sizhu_history_record.h" #include "power_manage.h" #include "pulse_and_alarm_line.h" #include "billing.h" #include "linked_list.h" #include "other_fun.h" #include "sys_sleep.h" FlagStatus key_awaken_flag_g = RESET; //uint8_t lcd_only_one_flag = 0; int main(void) { System_power_on_init(); /*¸÷ÖÖ³õʼ»¯*/ //Ó²¼þÇý¶¯³õʼ»¯ hardwareDriversInit(); //´æ´¢µÄ²ÎÊý³õʼ»¯ sysStoredParaInit(); //ÔËÐй¦ÄܲÎÊý³õʼ»¯£¬°üÀ¨³õʼ״̬¼ì²â sysRunFunParaInit(); //´ò¿ªÐèÒªÒ»Ö±¹¤×÷µÄÍⲿÒý½ÅÖÐ¶Ï allExtiIRQ(); IWDT_Clr(); lcdDisplayPro(); //¸´Î»ÏÔʾÏÈ´ò¿ª while(1) { if(sys_run_period==SET) { sys_run_period = RESET; IWDT_Clr(); if(Get_Extern_Rtc_Time(&sys_clockBCD_g) ==FAIL) //»ñȡʱ¼ä { //?RTCʱ¼äÒì³£±¨¾¯ if(__SYS_ALARM_CTL_BYTES_GET(rtc_err) == SET) __SYS_STATUS_ALARM_BYTES_SET(rtc_err,ALARM_ID_RTC_BAT_LOW); } /*°´¼üʶ±ð*/ //µ¥»÷²Ù×÷Ö÷ÒªÖжÏʶ±ð£¬³¤°´·ÅÔÚÑ­»·Àï¶ÁÈ¡IO״̬ʶ±ð keyPro(); /*LCDÏÔʾ*/ lcdDisplayPro(); /*ÉÏλ»ú½»»¥,º¬¼æÈÝmodbus±»²É¼¯´¦Àí*/ upperComPro(); /*¶Ô½ÓÉ豸½ÓÏß״̬¼ì²â*/ PulseAndAlarmLineCheck(); /*²É¼¯¡¢Éϱ¨¡¢·§¿ØÈÎÎñ¿ØÖÆ*/ //?ÈýÕß²»Í¬Ê±½øÐУ¬²É¼¯·ÅÔÚÉϱ¨Ö®Ç°£¬Í¬Ê±´¥·¢µÄ»°ÓÅÏȲɼ¯£¬ //±¨¾¯´¥·¢Éϱ¨ÅжÏÂß¼­·ÅÔڲɼ¯Ç°Ã棬ÏÈ´¥·¢²É¼¯£¬ÔÙ´¥·¢Éϱ¨ sysRunFunCtrlPro(&sys_fun_run_ctrl_g,sys_clockBCD_g); /*485²É¼¯*/ rs485ReadDataPro(&sys_fun_run_ctrl_g); /*½áË㣬°üº¬Âö³å¼ÆÈë*/ SettlementPro(); /*Êý¾ÝÀúÊ·¼Ç¼´æ´¢*/ //Êý¾ÝÀúÊ·¼Ç¼´æ´¢Èç¹ûÓöµ½²É¼¯ÖУ¬ÔòÑÓºóµÈ´ý²É¼¯Íê³ÉÔÙ´æ´¢ sizhuHistoryRecord(sys_clockBCD_g); /*µçԴ״̬»ñÈ¡*/ //·ÅÔÚ·§¿ØÖ®Ç°£¬ÒòΪ·§¿ØÓнèµçÉè¼Æ£¬·§¿ØÇ°Èç¹û¼îµç²»×㣬ÔòÐèÒª½èµç GetPwrStatusPro(&pwr_vol_g); /*·§¿Ø*/ valveCtrlPro(&sys_fun_run_ctrl_g); /*ϵͳÆäËûÁãɢС¹¦ÄÜ´¦Àí*/ OtherFunPro(); /*״̬×Ö¡¢±¨¾¯×Ö´¦Àí*/ SysAlarmCtrlPro(); // /*µÚÈý·½ÎÞÏßͨѶ£¬Ô¤Áô*/ // // // /*˼Öþƽ̨ÎÞÏßͨѶ*/ //// WirelessRemoteCommPro(&sys_fun_run_ctrl_g); // // /*modbusµØÖ·±íÊý¾Ý¸üÐÂ*/ // // // // /*ÐÝÃß*/ // //²¿·ÖÇé¿öϲ»ÄÜÐÝÃߣ¬Òª×öÅжϣ¬±ÈÈçÓÐÍ⹩µç¡¢RS485²É¼¯¹ý³ÌÖС¢Ô¶´«¹ý³ÌÖÐ // if(SysKeepRunningStatusGet(sys_fun_run_ctrl_g)==RESET){ // //ÐÝÃß´¦Àí // if(pulse_exti_flag==SET){ //µÈ´ýÂö³å¼ì²âÍê±Ï // for(uint8_t count_i=0;count_i<(PULSE_CHECK_DELAY_MS &0xff);count_i++){ // delay_ms(1); // if(pulse_exti_flag == RESET) // break; // } // } // //ÐÝÃß // DeepSleepMode(); // } } if(lcd_wake_up_flag_g == SET) //ΪÁ˰´¼üÏÔʾûÓÐÑӳٸРlcdDisplayPro(); } }