/************************** Copyright (c) ********************************** ** FUZHOU FUGUANG ELECTRONICS Co.,LTD. ** ¸£Öݸ£¹âµç×ÓÓÐÏÞ¹«Ë¾ ** http://www.fuguang.com ** **-------------- File Info ------------------------------------------------- ** File name: main.c ** Last modified Date: 2008-11-16 ** Last Version: 1.0 ** Descriptions: The main functions ** **-------------------------------------------------------------------------- ** Created by: mxpopstar ** Created date: 2008-11-16 ** Version: 1.0 ** Descriptions: The original version ** **-------------------------------------------------------------------------- ** Modified by: mxpopstar ** Modified date: 2008-11-20 ** Version: ** Descriptions: The main functions ** ***************************************************************************/ // #include #include #include #include "Define.h" #include "GB_Var.h" #include "ZiKu24_24.h" #include "ZiKu16_24.h" #include "ZiKu32_32.h" #include "ZiKu8_11.h" #include "ZiKu12_16.h" #include "TFT_Driver.h" #include "Delay.h" #include "MainMenu.h" #include "SystemInit.h" #include #include #include "FileManage.h" #include "M64USART_Driver.h" #include "AdjustValuePage.h" #include "NRF905_Driver.h" #include "MessageBox.h" #include "74HC595_Driver.h" #include "M64ADC_Driver.h" #include "M64PWM_Driver.h" #include "WorkingPage.h" #include "ProgressForm.h" #include "Buzzer_Driver.h" #include "CRC16.h" #include "LogoPage.h" #include "AD7843_Driver.h" #include "ChargePage.h" void RunMainTask(void) { static unsigned int Scedule = 0; static unsigned int Scedule1 = 0; static unsigned int fenon_Count = 0; static unsigned int fenon_Count2 = 0; wdt_reset(); //ι¹· Scedule++; BuzzerBeepTask(); //------------ ±£´æÊý¾Ýµ½flash ------------------- if(GB_SYS_State.SaveDateEN) { GB_SYS_State.SaveDateEN = 0; SaveFile(&GB_FBO_Data); } //------------ ·¢ËÍ232ʵʱÊý¾Ý ------------------- if(GB_SYS_State.SendRTDataEN) { unsigned int datalen = sizeof(GB_FBO_Data)-1000+GB_FBO_Data.BattSum*2; GB_SYS_State.SendRTDataEN = 0; GB_FBO_Data.CRC16 = 0; GB_FBO_Data.CRC16 = CalCRC16(&GB_FBO_Data, datalen); SendSTR_M64USART0(&GB_FBO_Data, datalen); } //------------ Ôڷŵç¹ý³ÌÖмì²âÍ£»úÌõ¼þºÍ¸÷ÖÖÒì³£Çé¿ö ------------------ if((GB_SYS_State.TestType==TestTypeDischarge)&&(GB_SYS_State.WorkState==Discharging)) { Scedule1 = 0; CheckIfStop(&GB_FBO_Data, GB_TestingParm); } //------------ ÔÚ³äµç¹ý³ÌÖÐÒì³£Çé¿ö¼ì²â´¦Àí ---------------------------- else if((GB_SYS_State.TestType==TestTypeCharge)&&(GB_SYS_State.WorkState==Charging)) { CPCheckAbnormalAlarm(); } //------------ ÔÚ³äµç¹ý³ÌÖмòµ¥¿ØÖƳäµçµçÁ÷ ---------------------------- if(GB_SYS_State.WorkState == Charging) { CPControlChargeCurrent(&GB_FBO_Data); } //------------ »ñÈ¡²¢´¦Àí´¥ÃþÆÁºÍ¼üÅ̵ÄÊäÈë ---------------------------- if((Scedule%11) == 0) { GB_SYS_State.GetInput(); } //------------ ²É¼¯±¾»úºÍǯ¿ÚµÄµçÁ÷µçѹ -------------------------------- if((Scedule%20) == 0) { GetVolCurrent(&GB_FBO_Data); } //------------ ÒÔÒ»¶¨µÄËÙÂʺÍÌõ¼þ²É¼¯ÎÞÏßµ¥Ìåµçѹ ---------------------- if((Scedule % 24) == 0) { Get_Vol_Datas(&GB_FBO_Data, &GB_SYS_State, GB_TestingParm[7]*10); } //------------ÓÃÓÚÖ÷»ú·¢³ö´Ó»úÐźźó¶Ï¿ª×Ô¼ºµÄ¼ÌµçÆ÷----------------- if((GB_SYS_State.WorkState == Stopped)||(GB_SYS_State.WorkState == Paused)) { Scedule1++; if(Scedule1 >= 6000) { CloseSelfRelay(); Scedule1=0; } } //------------ ¿ØÖÆ·çÉȵĿªºÍ¹Ø ---------------------------------------- if((GB_SYS_State.WorkState==Stopped) && ((Scedule%128)==0) && (GB_FBO_Data.SumCurrent>=50)) { static unsigned char count = 0; if((!(GetDischargePowerState()&WIND)) && (!(GetChargePowerState()&WIND)))//Èç¹û·çÉÈÊǹØ×ÅµÄ { if(count++ >= 10) { SetDischargePowerState(WIND); SendDataToHC595(GetDischargePowerState()); count = 0; } } } //Èç¹û·çÉÈÊÇ¿ª×ŵÄ,ÇÒϵͳ¹¤×÷״̬ÊÇÍ£Ö¹ /*if((GetDischargePowerState()&WIND)&&((GB_SYS_State.WorkState == Stopped)||(GetAdjVPWorkState()==AdjVPStopped))&&(GB_FBO_Data.SumCurrent<=50)) { fenon_Count++; if(fenon_Count>=64000) { fenon_Count2++; fenon_Count = 0; } } else { fenon_Count = 0; fenon_Count2 = 0; } if((fenon_Count2 > 20)&&(GetDischargePowerState()&WIND)) { ClearDischargePowerState(WIND); SendDataToHC595(GetDischargePowerState()); BuzzerBeep(100); fenon_Count=0; fenon_Count2 = 0; }*///20160715 ÐÞ¸Ä È¥µôϵͳֹͣ¹Ø±Õ·çÉȵŦÄܸù¾Ý¶¨ÖƱí2016071101 ˵Ã÷ } // int main(void) { //------- µ÷ÊÔʱʹÓõÄһЩ±äÁ¿ ------------- unsigned int Ncount = 5000; //wdt_reset(); //ι¹· _delay_ms(1); InitSystem(); //-------- ÑÓʱ1000msʹϵͳ³ä·ÖÎȶ¨ --------- BuzzerBeep(500); DSPLogoPage();//ÏÔʾlogo while(Ncount--) { _delay_ms(1); if(NO_AD7843_PENIRQ) { wdt_reset(); //ι¹· continue; } else { BuzzerBeep(100); break; } } //------------ LCDÇåÆÁºóÏÔʾÖ÷²Ëµ¥ --------- GB_SYS_State.CurrentPage = DSPMainMenu; BackColorCH(); GB_SYS_State.CurrentPage(); do { RunMainTask(); } while(1); return 0; } // /************************* END OF FILE (main.c)****************************/