Dmitry Kovalev / Mbed 2 deprecated LG2

Dependencies:   mbed

Fork of LG by igor Apu

Files at this revision

API Documentation at this revision

Comitter:
Kovalev_D
Date:
Thu Apr 07 16:45:25 2016 +0000
Parent:
121:bbae560cdd43
Child:
123:6dd1df6230e9
Commit message:
???? 115 . ???? ?????? 921600 ????? (????????? ??? ?????????)

Changed in this revision

Command.c Show annotated file Show diff for this revision Revisions of this file
MTimer.c Show annotated file Show diff for this revision Revisions of this file
SPI.c Show annotated file Show diff for this revision Revisions of this file
main.c Show annotated file Show diff for this revision Revisions of this file
vibro.c Show annotated file Show diff for this revision Revisions of this file
vibro.h Show annotated file Show diff for this revision Revisions of this file
--- 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; 
--- a/MTimer.c	Thu Apr 07 10:44:23 2016 +0000
+++ b/MTimer.c	Thu Apr 07 16:45:25 2016 +0000
@@ -35,15 +35,15 @@
     
     if (Event1Hz)	
     {
-             
+
    
         
        
-        Event1Hz--;
-        Time1Hz++;
+       Event1Hz--;
+       Time1Hz++;
        Discharg ();
        BackLight ();
-        if(Rate_Flag)CMD_Rate();
+       if(Rate_Flag == 1) CMD_Rate();
     }
 }
 /////////////////////////////////////////////////////
--- a/SPI.c	Thu Apr 07 10:44:23 2016 +0000
+++ b/SPI.c	Thu Apr 07 16:45:25 2016 +0000
@@ -99,6 +99,11 @@
 //			Spi.DAC_B  = (Gyro.PLC_Regul + 0x1fffffff)/65536;
 
 		}
+else Spi.DAC_B  += 16;
+
+
+
+
  		Gyro.PLC_Old = PLC_In;
 }
 
--- a/main.c	Thu Apr 07 10:44:23 2016 +0000
+++ b/main.c	Thu Apr 07 16:45:25 2016 +0000
@@ -58,8 +58,8 @@
 
 
     UART_InitSet (0, 921600, 0x03);  // надо проверить, мож чо с ногам
-//    UART_InitSet (1, 921600, 0x03);
-    UART_InitSet (1, 38400, 0x03);
+//    UART_InitSet (1, 992600, 0x03);
+    UART_InitSet (1, 115200, 0x03);
     
     ////////////
     //DAC_ADC_Exchange_Init();  // инициализация  обмена АЦП и ЦАП.
@@ -264,6 +264,7 @@
        
         Event_Vibro();
 	
+	if((Rate2VibFlag==1) && (Rate_Flag==2))CMD_Rate2();//набор rate2 выдается по выставлению (логической)ноги в 1.
 	
 
 
--- a/vibro.c	Thu Apr 07 10:44:23 2016 +0000
+++ b/vibro.c	Thu Apr 07 16:45:25 2016 +0000
@@ -4,7 +4,7 @@
 
 volatile unsigned int Cheng_AMP_Flag=0;
 int    reper=0;
-      
+int    Rate2VibFlag;
 void Discharg ()//проверка битового поля поджига  и  установка значения бита поджига
 {
 	 if (Gyro.Discharg)
@@ -28,13 +28,15 @@
 
 
 
-/*if(Rate_Flag==2)CMD_Rate2(void);*/
+
 
 void VibroOut(void) 	// выставка ног вибро
 {
     if(CountV31>=16) {//первая нога вибро
          // левая граница вЫкл вибро 1 > Time_vibro <ПРАВАЯ  граница вЫкл вибро 1
         if((Time_vibro>Gyro.AmpN1) && (Time_vibro<Gyro.AmpN2))	{
+           
+           
             Gyro.PinReg &= ~PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "0"
         } else {
             Gyro.PinReg |= PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "1"
@@ -42,7 +44,8 @@
 
     } else {//вторая нога вибро
         if((Time_vibro>Gyro.AmpN1)&&(Time_vibro<Gyro.AmpN2))	{
-            Gyro.PinReg &= ~PinRegBit_2V; /*LoopOff*////установить в регистре PinReg бит "вибро 2" в "0"
+     
+           Gyro.PinReg &= ~PinRegBit_2V; /*LoopOff*////установить в регистре PinReg бит "вибро 2" в "0"
         } else {
             Gyro.PinReg |= PinRegBit_2V;//установить в регистре PinReg бит "вибро 2" в "1"
         }
@@ -119,7 +122,6 @@
     switch(CountV31) {
      case 0:
           
-              
             Time_vibro=0;
             Gyro.VibroNoiseF=1;
            
@@ -129,6 +131,7 @@
 	 case 16:
             Time_vibro=0;
             Gyro.VibroFrqRegulF=1;
+            Rate2VibFlag=1;
      break;
             
 	 case 24:
--- a/vibro.h	Thu Apr 07 10:44:23 2016 +0000
+++ b/vibro.h	Thu Apr 07 16:45:25 2016 +0000
@@ -18,8 +18,12 @@
 
 extern int tempAMP;
 typedef struct _Gyro {
-
-
+    
+   unsigned int OutMode;
+   #define  Rate1     0x1<<0
+   #define  Rate2     0x1<<1
+   #define  Delta500  0x1<<2
+   #define  DeltaEXT  0x1<<3
    unsigned int RgConA;
    unsigned int RgConB;
 
@@ -141,7 +145,7 @@
 
 
 extern unsigned int amp;
-
+extern int  Rate2VibFlag;
 extern void cheng(void);
 extern void Noise(void);
 extern void VibroOut(void);