fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
122:fbacb932a30b
Parent:
121:bbae560cdd43
Child:
124:9ae09249f842
--- a/Command.c	Thu Apr 07 10:44:23 2016 +0000
+++ b/Command.c	Thu Apr 07 16:45:25 2016 +0000
@@ -23,8 +23,8 @@
 }*/
 void CMD_Maintenance(void)
 {
-    Rate_Flag=0;
-    BuffTemp[0] = Gyro.SOC_Out;
+
+    BuffTemp[0] =  Gyro.SOC_Out;
     BuffTemp[1] =  Gyro .My_Addres;
     BuffTemp[2] =  Gyro .Firmware_Version;
     BuffTemp[3] = Gyro .GLD_Serial;
@@ -34,10 +34,25 @@
     WriteConN (BuffTemp,8);
    
 }
+void CMD_Rate3(void)
+{	
+    unsigned int Temp;
+    BuffTemp[ 0] = Gyro.SOC_Out;
+    BuffTemp[ 1] = Gyro.My_Addres;
 
+    Temp=0x00;
+    BuffTemp[ 2] =(Temp >> 8) & 0xff;//
+    BuffTemp[ 3] =(Temp >> 0) & 0xff;//
+    Temp=0x00;
+    BuffTemp[ 4] =(Temp >> 8) & 0xff;//
+    BuffTemp[ 5] =(Temp >> 0) & 0xff;//
+ 
+    Check(BuffTemp, 44);
+    WriteConN (BuffTemp,44);
+}
 void CMD_Rate2(void)
 {
-	 
+	Rate2VibFlag=0;
     BuffTemp[ 0] = Gyro.SOC_Out;
     BuffTemp[ 1] = Gyro.My_Addres;
 
@@ -48,80 +63,20 @@
     BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -.
     BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -.
  
-    Check(BuffTemp, 44);
-    WriteConN (BuffTemp,44);
+
+ 
+ 
+    Check(BuffTemp, 8);
+    WriteConN (BuffTemp,8);
 }
 void CMD_Rate(void)
 {
   
      
    	unsigned int Temp;
-   
-    unsigned int Cnt_PlsL , Cnt_PlsH;			// Счетчик +.
-    unsigned int Cnt_MnsL , Cnt_MnsH;			// Счетчик -.
-    unsigned int Cnt_DifL , Cnt_DifH;			// Разность счетчиков.
-    unsigned int F_rasL   , F_rasH;				// Частота расщепления.
-
-    unsigned int HF_regL  , HF_regH;      // Выход регулятора ГВЧ.             
-    unsigned int HF_difL  , HF_difH;      // Сигнал ошибки регулячтора ГВЧ.     
-
-    unsigned int WP_regL  , WP_regH;
-
-    unsigned int ADC1L, ADC2L, ADC3L, ADC4L, ADC5L;
-    unsigned int ADC1H, ADC2H, ADC3H, ADC4H, ADC5H;
-  
-
     
     Gyro.Firmware_Version=0xff; /// промежуточная затычка
-
-
-
-    
-    Cnt_PlsH = ( Gyro.Cnt_Pls>>8) TakeByte;
-    Cnt_PlsL =  Gyro.Cnt_Pls TakeByte;
-    Gyro.Cnt_Pls= 0;
-    
-    Cnt_MnsH = ( Gyro.Cnt_Mns>>8) TakeByte;
-    Cnt_MnsL =   Gyro.Cnt_Mns TakeByte;
-    Gyro.Cnt_Mns=0;
-    
-    Cnt_DifH = ( Dif_QEI>>8) TakeByte;
-    Cnt_DifL = ( Dif_QEI   ) TakeByte;
-   
-    //Spi.DAC_A
-    F_rasH   = ( Gyro.F_ras>>8  ) TakeByte;
-    F_rasL   = ( Gyro.F_ras     ) TakeByte;
-     
-    HF_regL  = ( Spi.DAC_A )     TakeByte;
-    HF_regH  = ( Spi.DAC_A>>8  ) TakeByte;
-    
-    WP_regH  = ( Spi.DAC_A>>8  ) TakeByte;
-    WP_regL  = ( Spi.DAC_A     ) TakeByte;
-
-    ADC1H    = ( Spi.ADC1>>8    ) TakeByte;
-    ADC1L	 = ( Spi.ADC1       ) TakeByte;
-
-    ADC2H    = ( Spi.ADC2>>8    ) TakeByte;
-    ADC2L	 = ( Spi.ADC2       ) TakeByte;
-
-    ADC3H    = ( Spi.ADC3>>8    ) TakeByte;
-    ADC3L	 = ( Spi.ADC3       ) TakeByte;
-
-    ADC4H    = ( Spi.ADC4>>8    ) TakeByte;
-    ADC4L	 = ( Spi.ADC4       ) TakeByte;
-
-    ADC5H    = ( Spi.ADC5>>8    ) TakeByte;
-    ADC5L	 = ( Spi.ADC5       ) TakeByte;
-
-    WP_regH  = ( Spi.DAC_B>>8   ) TakeByte;
-    WP_regL  = ( Spi.DAC_B      ) TakeByte;
-
-    HF_regH=0xff;
-    HF_regL=0xff;
-
-    HF_difH=0xff;
-    HF_difL=0xff;
-
+ 
 
     BuffTemp[ 0] = Gyro.SOC_Out;
     BuffTemp[ 1] = Gyro.My_Addres;
@@ -141,15 +96,14 @@
     BuffTemp[ 7] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
 
   
-  
-
-    BuffTemp[ 8] = F_rasH;//расщипление частота
-    BuffTemp[ 9] = F_rasL;//
+    Temp = Gyro.F_ras;
+    BuffTemp[ 8] = (Temp >> 8) & 0xff;//расщипление частота
+    BuffTemp[ 9] = (Temp >> 0) & 0xff;//
 
     BuffTemp[10] = (Temp >> 8) & 0xff;//выход регулятора гвч;
-    BuffTemp[11] = (Temp >> 0) & 0xff;;
+    BuffTemp[11] = (Temp >> 0) & 0xff;
 
-Temp = (Gyro.AD_Slow >> 16)- 0x7fff;;
+Temp = (Gyro.AD_Slow >> 16)- 0x7fff;
     BuffTemp[12]=(Temp >> 8) & 0xff;////
     BuffTemp[13]=(Temp >> 0) & 0xff;////
 
@@ -396,7 +350,6 @@
             break;
 
         case 0xDD://m_rate
-
             lengf=6;
             CRC_N=44;
             break;
@@ -486,9 +439,9 @@
      {
         ReadCon1(BuffTemp); 
             switch(Gyro.CMD_In) {
-                  Rate_Flag=0;
+                Rate_Flag=0;
                 case 0x99:
-                  Rate_Flag=0;
+                	Rate_Flag=0;
                     CMD_Maintenance();
                   
                     break;
@@ -501,12 +454,14 @@
                     CMD_M_Stymul();
                     break;
                 case 0xDD:
-                   TempParam = BuffTemp[3];
-                   Rate_Flag=0;
-                   if     (TempParam==3)         Rate_Flag=3;
-                   else if(TempParam==2)         Rate_Flag=2;
-                   else                          Rate_Flag=1;
-                    break; 
+                 Rate_Flag=0;
+                 TempParam=(BuffTemp[3]) & 0x9f;
+                 if      (TempParam == 0x01)        { Rate_Flag=0; CMD_Rate(); 			WriteCon("Rate11");}
+                 else if (TempParam == 0x02)        { Rate_Flag=0; CMD_Rate2(); 		WriteCon("Rate21");}
+                 else if (TempParam == 0x81)        { Rate_Flag=1; 						WriteCon("Rate12");}
+                 else if (TempParam == 0x82)        { Rate_Flag=2; Rate2VibFlag==0;		WriteCon("Rate22");}
+
+                 break; 
                case 0xE4:
                     CMD_M_vib();
                     break;