forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Revision:
191:40028201ddad
Parent:
190:289514f730ee
Child:
192:d32c8cf7bcd9
--- a/Command.c	Tue Aug 23 14:03:16 2016 +0000
+++ b/Command.c	Mon Aug 29 11:58:52 2016 +0000
@@ -71,6 +71,15 @@
   WriteCon(Time);
  }
  ///////////////end flah and boot///////////
+ void M_RateA(void)
+ {
+    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;       		   		
+    }
+ }
  
 void CMD_M_Param_R(void)
 {
@@ -132,7 +141,7 @@
 	BuffTemp[ 0] = Gyro.SOC_Out;
     BuffTemp[ 1] = Gyro.My_Addres;
     
-    Temp = Gyro.CuruAngle;
+    Temp = Gyro.CuruAngle>>5;
     Gyro.CuruAngle = 0;
 
     BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
@@ -292,7 +301,7 @@
     Gyro.EXT_Latch=0;
 	BuffTemp[ 0] = Gyro.SOC_Out;
     BuffTemp[ 1] = Gyro.My_Addres;
-    Temp = Gyro.CuruAngle;
+    Temp = Gyro.CuruAngle>>5;
     Gyro.CuruAngle = 0;
 
     BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
@@ -458,7 +467,7 @@
 { 
     Gyro.Rate1_Event=0;
    	unsigned int Temp;
-    
+	unsigned int OldCuruAngle;
     Gyro.Firmware_Version=0xff; /// промежуточная затычка
  
 
@@ -472,10 +481,19 @@
     BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -.
     BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -.
  
-  
-Temp = Gyro.CuruAngle;
-Gyro.CuruAngle = 0;
-//Temp = Gyro.AD_Fast >> 16;
+ 
+Temp=Gyro.CuruAngle;												//(0,28/с)
+ 
+               //    8 байт       + 4 байта от прошлых измерений
+ /* Gyro.CuruAngle = Gyro.CuruAngle + OldCuruAngle; 								//(72 град/с)
+  OldCuruAngle=Gyro.CuruAngle & 0xff;											//сохраняем 4 байта для след измирений
+  Temp=Gyro.CuruAngle>>8; 	*/													//приводим к форме вывода 
+ 															
+ 																				//(9 град/с)
+/*OldCuruAngle=Gyro.CuruAngle & 0x1f;											//сохраняем 5 бит для след измирений 
+  Temp=Gyro.CuruAngle>>5; */                                                    //приводим к форме вывода
+  Gyro.CuruAngle = 0;
+
     BuffTemp[ 6] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
     BuffTemp[ 7] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
 
@@ -972,7 +990,7 @@
             if (Time[0] == 'F') {		// выдача технологическая
                 sprintf(Time,"\r\n");
                 WriteCon(Time);
-                sprintf((Time)," Gyro.Termo = <%07d>  Spi.ADC1 = <%07d>  Spi.ADC1_Accum = <%07d>",Spi.ADC4,Spi.ADC4,Spi.ADC4_Accum );
+                sprintf((Time),"  Gyro.CuruAngle = <%015d>", Gyro.CuruAngle);
                 WriteCon(Time);
             }   
             if (Time[0] == 'q') {		// внешняя защелка
@@ -987,7 +1005,7 @@
             if (Time[0] == '2') {		// выдача технологическая
                 sprintf(Time,"\r\n");
                 WriteCon(Time);
-                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",    Buff_8Point[i]);
+                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",   Buff_32Point[CountV31]);
                 WriteCon(Time);
             }
             if (Time[0] == '3') {		// выдача технологическая
@@ -999,10 +1017,28 @@
             if (Time[0] == '4') {		// выдача технологическая
                 sprintf(Time,"\r\n");
                 WriteCon(Time);
-                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",    Buff_16PointD[i]);
+                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ",    Buff_16PointD[i]);
+                WriteCon(Time);
+                sprintf(Time,"\r\n");
+                WriteCon(Time);
+                sprintf(Time,"\r\n");
+                WriteCon(Time);
+                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ",    Buff_32Point[i]);
+                WriteCon(Time);
+                sprintf(Time,"\r\n");
+                WriteCon(Time);
+                sprintf(Time,"\r\n");
+                WriteCon(Time);
+                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ",    Buff_Restored_sin[i]);
+                WriteCon(Time);
+                sprintf(Time,"\r\n");
+                WriteCon(Time);
+                sprintf(Time,"\r\n");
+                WriteCon(Time);
+                sprintf(Time,"\r\n");
                 WriteCon(Time);
             }
-            if (Time[0] == 'z'){		// выдача технологическая
+            if (Time[0] == 'z'){		// выдача технологичес6кая
                 sprintf(Time,"\r\n");
                 WriteCon(Time);
                 for (int i = 0; i < 32; i++ ) 
@@ -1020,7 +1056,7 @@
              if (Time[0] == '7') {		// выдача технологическая
                 sprintf(Time,"\r\n");
                 WriteCon(Time);
-                for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%07d> ",Buff_AMP64P[i]-(Buff_AMP[i]));
+                for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%05d> ", Buff_16PointD[CountV31] - Buff_32Point[CountV31]);
                 WriteCon(Time);
              }
              if (Time[0] == '9') {		// выдача технологическая
@@ -1079,7 +1115,7 @@
           if((Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1))	//Запись для Ориджина.		
    		   {
     		 Gyro.Event_500Hz=0;
-     		 sprintf((Time),"%d \r\n",LPC_TIM1->MR0);
+     		 sprintf((Time),"%d \r\n",Gyro.MaxAmp);
        		 WriteCon(Time);
     		}