fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
114:5cc38a53d8a7
Parent:
113:8be429494918
Child:
116:66f1f0ff2dab
--- a/main.c	Mon Apr 04 14:48:14 2016 +0000
+++ b/main.c	Tue Apr 05 02:44:26 2016 +0000
@@ -251,7 +251,9 @@
         }
         
      // Read_CMD();
-
+//ДИМА== посмотри пожалуйста нармално ли работуют все таймеры аппаратные и програмные, то есть нет ли где затыком по времени
+// с помошью ссветодиода например помаргай в разные временна, почему в режиме "рейт" передача от гироскопа идет с разной частотой
+// попробуй сделать "рейт M4" посмотри в протоколе как вклбчается и на кокой скорости работает
         Event_1Hz();
         Event_1KHz();
         Event_100KHz();
@@ -262,13 +264,13 @@
 
 	if (Spi.ADC_NewData == 1)  // был приход новых данных по ацп сдесь сделать обработку информации и подготовку для выдачи делается 1 раз за вибро
 	{
-// можно хапихнкть в функцию
+// можно апихнкть в функцию
 		Spi.ADC_NewData = 0;	
 		Gyro.Termo 	= Spi.ADC1;
 		Gyro.In1   	= Spi.ADC2;
 		Gyro.In2   	= Spi.ADC3;
 		Gyro.DeltaT = Spi.ADC4;
-		TempA = 0x7fff - Spi.ADC5;  // перевернем знак
+		TempA = (0x7fff - Spi.ADC5) << 1;  		// перевернем знак  и умножим на два (бало 32000...0 стало 0 ...64000)
 
 		Gyro.ADF_Accum += TempA;
 		Gyro.ADS_Accum += TempA;
@@ -297,45 +299,41 @@
 	if (Gyro.ADF_NewData == 1)  // был приход новых данных После быстрого фильтра AD
 	{
 		Gyro.ADF_NewData = 0;
-
+	}// можно запихнкть в функцию
+	
+	if (Gyro.ADS_NewData == 1)  // был приход новых данных После Медленного фильтра AD
+	{
+		Gyro.ADS_NewData = 0;
+		PlcRegul();//Расчет	
 
 
 
 	}// можно запихнкть в функцию
 	
-	if (Gyro.ADS_NewData == 1)  // был приход новых данных После Медленного фильтра AD
-	{
-		Gyro.ADS_NewData = 0;	
-	}// можно запихнкть в функцию
-	
-      if(Spi.PLC_NewData == 32)
-    {
-    	  Spi.PLC_NewData = 0;
-    	  PlcRegul();//выдача в ЦАПы
-    }
-
-    if(Gyro.VibroFrqRegulF == 1)
+    if(Gyro.VibroFrqRegulF == 1)		//Регулеровка частоты виброподвеса
     {
     	  Gyro.VibroFrqRegulF = 0;
     	  VibroFrqRegul();
     }
-    if(Gyro.VibroAMPRegulF == 1)
+
+    if(Gyro.VibroAMPRegulF == 1)		//Регулеровка Амплитуды виброподвеса
     {
     	  Gyro.VibroAMPRegulF = 0;
     	  VibroAMPRegul();
     }
-    if(Gyro.VibroNoiseF == 1)
+    if(Gyro.VibroNoiseF == 1)			//регулеровка ошумления, наверно нужно объеденить с регулеровкой ампитуды
     {
     	  Gyro.VibroNoiseF = 0;
     	  CalcAmpN();
     }
 
-
-    if(Gyro.VibroOutF== 1)
+    if(Gyro.VibroOutF== 1)				// установка ног в регисторе тоже подумать , зачем отделный флаг? наверно
     {
     	  Gyro.VibroOutF = 0;
     	  VibroOut();				//Чтение ADS_SPI
     }
+
+
 }//while
 }  //main