forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Revision:
150:29c9f7671bac
Parent:
147:1aed74f19a8f
Child:
158:0c8342e1837a
--- a/main.c	Tue May 03 05:12:26 2016 +0000
+++ b/main.c	Wed May 04 14:01:57 2016 +0000
@@ -36,27 +36,29 @@
 int main (void)
 {
 SystemInit1();  // Инициализация контроллера: установка тактовых частот
-SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 100MHz
+SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 103MHz
 GLD_Init();
 
-      UART_InitSet (0, 921600, 0x03);  // надо проверить, мож чо с ногам
+      UART_InitSet (0, 921600, 0x03); 
    // UART_InitSet (1, 921600, 0x03);
       UART_InitSet (1, 115200, 0x03);
 
-    IntLatch_Init();		  // инициализация внутренней защелки.
-    ExtLatch_Init();		  // инициализация внешней защелки.
-    LoadFlashParam(FromFLASH); 	//загрузка параметров.
-    init_PLC();                                //Инициализация СРП(регулировка периметра)
-    init_Dither_reg();                         //инициализация вибропривода
+// IntLatch_Init();		  // инициализация внутренней защелки.
+// ExtLatch_Init();		  // инициализация внешней защелки.
+// LoadFlashParam(FromFLASH); 	//загрузка параметров.
+// init_PLC();                                //Инициализация СРП(регулировка периметра)
+// init_Dither_reg();                         //инициализация вибропривода
 
     Out_G_photo(200,200);        //запись в буфер мастера принятые от функции данные (60,60) и установка флага старта передачи и занятой шины.
     WriteCon1("\n\r ...GL start programm uart ACK.... ");
     WriteCon("\n\r ...GL start programm uart Tech.... ");
     sprintf(Time,"\r\nCompiled: %s %s.",__DATE__,  __TIME__ );                 //Подготовка даты и времени компиляции
     WriteCon(Time);
+    
 
-Gyro.PLC_Error2Mode = 10;  // начальная задержка (неработает СРП)
-    while ( 1 ) { //основной цикл.
+
+while ( 1 ){ //основной цикл.
+
        	G_Photo_Exchange();	
         Concol ();				// Проврка 0 консоли  (вход и выход)
         Concol1 ();		        // Проврка 0 консоли  (вход и выход)
@@ -71,29 +73,37 @@
         Event_500Hz();
         Event_1Hz();
         Event_Vibro();
-        
-	 switch(Gyro.ModeOut) {
-     case 1:
-            if(Gyro.Rate1_Event    == 1) CMD_Rate();
-     break;  
-     case 2:
-            if(Gyro.Rate2_Event    == 1) CMD_Rate2();
-     break;    
-     case 3:
-            if(Gyro.Delta500_Event == 1) CMD_Delta_500Hz();
-     break;   
-     case 4:
-            if(Gyro.EXT_Latch      == 1) CMD_Delta_Ext();
-     break;       		   		
-     } 
-    if (Spi.ADC_NewData     == 1) {ADS_Acum();								 	}  // был приход новых данных по ацп сдесь сделать обработку информации и подготовку для выдачи делается 1 раз за вибро
-	if (Gyro.ADF_NewData    == 1) {Gyro.ADF_NewData = 0;                    	}  // был приход новых данных После быстрого фильтра AD	
-	if (Gyro.ADS_NewData    == 1) {Gyro.ADS_NewData = 0;     PlcRegul();     	}  // был приход новых данных После Медленного фильтра AD
-    if (Gyro.VibroFrqRegulF == 1) {Gyro.VibroFrqRegulF = 0;	 VibroFrqRegul();	}	//Регулеровка частоты виброподвеса    
-    if (Gyro.VibroAMPRegulF == 1) {Gyro.VibroAMPRegulF = 0;	 VibroAMPRegul();   }	//Регулеровка Амплитуды виброподвеса
-    if (Gyro.VibroNoiseF    == 1) {Gyro.VibroNoiseF = 0;	 CalcAmpN();	    }//регулеровка ошумления, наверно нужно объеденить с регулеровкой ампитуды
-    if(Gyro.VibroOutF       == 1) {Gyro.VibroOutF = 0;		 VibroOut();		}// установка ног в регисторе тоже подумать , зачем отделный флаг? наверно 
-    if( (Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1))				
+   
+   
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////выдача параметров через Rate////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   
+	switch(Gyro.ModeOut) {
+    case 1: if(Gyro.Rate1_Event    == 1) CMD_Rate();  		   break;  
+    case 2: if(Gyro.Rate2_Event    == 1) CMD_Rate2(); 		   break;    
+    case 3: if(Gyro.Delta500_Event == 1) CMD_Delta_500Hz();    break;   
+    case 4: if(Gyro.EXT_Latch      == 1) CMD_Delta_Ext();      break;       		   		
+    }
+   
+   
+    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    /////////////////////////////////////////////////контуры регулировки///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
+    if (Spi.ADC_NewData     == 1) {ADS_Acum();								 	}   // был приход новых данных по ацп сдесь сделать обработку информации и подготовку для выдачи делается 1 раз за вибро
+	if (Gyro.ADF_NewData    == 1) {Gyro.ADF_NewData = 0;                    	}   // был приход новых данных После быстрого фильтра AD	
+	if (Gyro.ADS_NewData    == 1) {Gyro.ADS_NewData = 0;     PlcRegul();     	}   // был приход новых данных После Медленного фильтра AD (гдето раз в 38 - 40 секунд )//регулировка периметра.
+    if (Gyro.VibroFrqRegulF == 1) {Gyro.VibroFrqRegulF = 0;	 VibroFrqRegul();	}	// Регулеровка частоты виброподвеса    
+    if (Gyro.VibroAMPRegulF == 1) {Gyro.VibroAMPRegulF = 0;	 VibroAMPRegul();   }	// Регулеровка Амплитуды виброподвеса
+    if (Gyro.VibroNoiseF    == 1) {Gyro.VibroNoiseF = 0;	 CalcAmpN();	    }	// регулеровка ошумления, наверно нужно объеденить с регулеровкой ампитуды
+    if (Gyro.VibroOutF      == 1) {Gyro.VibroOutF = 0;		 VibroOut();		}	// установка ног в регисторе тоже подумать , зачем отделный флаг? наверно 
+    
+    
+  
+   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+   ////////////////////////////////////////////////////выдача частоты в терминал длля записи лога///////////////////////////////////////////////////////////////////////////////////////////////////////
+   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+   //////G=1,K=0 в терменале 
+    if((Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1))	//Запись длля Ориджина.		
     {
     	 Gyro.Event_500Hz=0;
      	 sprintf((Time),"%d \r\n",LPC_TIM1->MR0);