forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Revision:
194:8f3cb37a5541
Parent:
193:a0fe8bfc97e4
Child:
195:bcc769f5292b
--- a/Command.c	Thu Sep 15 11:09:00 2016 +0000
+++ b/Command.c	Thu Sep 15 14:00:43 2016 +0000
@@ -33,9 +33,12 @@
 void DropDelay(void)
 {   
     Gyro.DropDelayGLD = DropDelayGLD_0;
-  	if     (Gyro.My_Addres==1)	Gyro.DropDelayGLD = DropDelayGLD_1;
-	else if(Gyro.My_Addres==2)  Gyro.DropDelayGLD = DropDelayGLD_2;
-	else if(Gyro.My_Addres==3)  Gyro.DropDelayGLD = DropDelayGLD_3;
+    switch(Gyro.My_Addres) {
+    case 1: Gyro.DropDelayGLD = DropDelayGLD_1;	 	  break;  
+    case 2: Gyro.DropDelayGLD = DropDelayGLD_2; 	  break;    
+    case 3: Gyro.DropDelayGLD = DropDelayGLD_3;       break;   
+  }
+  
 }
 
 void WriteFlash(void)
@@ -415,18 +418,14 @@
     BuffTemp[20] = 0x00;
     BuffTemp[21] = 0x00;
 
-
-
     Temp = Spi.DAC_B - 0x7fff;
     BuffTemp[22] =  (Temp >> 8) & 0xff;
     BuffTemp[23] =  (Temp >> 0) & 0xff;
 
- 
     Temp = Gyro.PLC_Delta >> 16;
     BuffTemp[24] = (Temp >> 8) & 0xff;
     BuffTemp[25] = (Temp >> 0) & 0xff;//
     
-    
     Temp = Gyro.AD_Slow >> 16;
     BuffTemp[26] =  (Temp >> 8) & 0xff;
     BuffTemp[27] =  (Temp >> 0) & 0xff;
@@ -446,10 +445,10 @@
 	Temp = Gyro.DeltaT;
     BuffTemp[34] = (Temp >> 8) & 0xff;//дельта
     BuffTemp[35] = (Temp >> 0) & 0xff;
-	    
+	//  Temp = 000;  
 	Temp = Gyro.Termo;
-   // Temp = (0x7fff + Temp)/164;
-    Temp = 0x7fff+Temp;
+    Temp = (0x7fff + Temp);///164
+    Temp = /*0x7fff+*/Temp;
     BuffTemp[36] =(Temp >> 8) & 0xff;//температура
     BuffTemp[37] =(Temp >> 0) & 0xff;//ADC6   sesnsor 5
 
@@ -476,9 +475,6 @@
     temp2=temp2&0xFFFF;
     
     Gyro.AmpPer=(((((Gyro.Frq>>12)*200)/16)*temp2)/7680000);
-    
-   // Gyro.AmpPer = ((unsigned int) ((7680000*16/temp1)))*16*16*16; 
-    Consol=Gyro.Frq ;
 }
 void CMD_M_Control_D8()///установка\сброс регистров управления
 {
@@ -493,66 +489,29 @@
     BuffTemp[1] = Gyro.My_Addres;    //00
     BuffTemp[2] = Gyro.CMD_In;       //D8
     
-/*  
-  
- FrqON  
-PlcON
- HFOOFF  
-HFOON 
-
- PlcOFF  
- PlcON
- */
     Pa = BuffTemp[3];
-    
     SR = Pa >> 0x7;
-    
     V  = Pa >> 0x5;
     V  = V  &  0x3;
-    
     A  = Pa >> 0x4;
     A  = A  &  0x1;
-    
     Bit_num = Pa & 0xf;
     
-    if(SR) {
+    if(SR) 
+    {
     	 switch (Bit_num){
-    	 	
-    	 case 0x06:
-    	 FrqON
-    	 break;
-    	 
-    	 case 0x05:
-    	 AVibON
-    	 break;
-    	 
-    	 case 0x01:
-    	 HFOON
-    	 break;
-    	 
-    	 case 0x03:
-    	 PlcON
-    	 break;
+    	 case 0x06: FrqON  	 break;
+    	 case 0x05: AVibON 	 break;
+    	 case 0x01: HFOON  	 break;
+    	 case 0x03: PlcON 	 break;
     	 }
     } 
    else{
    switch (Bit_num){
-   	     
-   	     case 0x06:
-    	 FrqOFF
-    	 break;
-    	 
-    	 case 0x05:
-    	 AVibOFF
-    	 break;
-    	 
-    	 case 0x01:
-    	 HFOOFF
-    	 break;
-    	 
-    	 case 0x03:
-    	 PlcOFF
-    	 break;
+   	     case 0x06: FrqOFF 	 break;
+    	 case 0x05: AVibOFF	 break;
+    	 case 0x01: HFOOFF 	 break;
+    	 case 0x03: PlcOFF 	 break;
     	}
    } 
     BuffTemp[0] = Gyro.SOC_Out;      //DD
@@ -604,6 +563,30 @@
     Spi.DAC_B =(unsigned int)(DACF) /*(unsigned int)(temp*K_DAC+deltaDAC)*/; // K_DAC);
     }
 }
+
+void GLDStartDischarg(void)
+{
+	   				switch(Gyro.My_Addres)
+   						 {//смещение поджига и подсветки в зависимости от адреса ГЛД
+  						  case 0:
+  						  Gyro.Discharg =  StartDischarg  << ShiftStart0;
+					 	  Gyro.BackLight = StartBackLight << ShiftStart0;
+  						  break;
+	    				  case 1:
+                          Gyro.Discharg =  StartDischarg  << ShiftStart1;
+                          Gyro.BackLight = StartBackLight << ShiftStart1;
+                          break;
+                          case 2:
+                          Gyro.Discharg =  StartDischarg  << ShiftStart2;
+                          Gyro.BackLight = StartBackLight << ShiftStart2;
+                          break;
+                          case 3:
+                          Gyro.Discharg =  StartDischarg  << ShiftStart3;
+                          Gyro.BackLight = StartBackLight << ShiftStart3;
+                          break;
+                          }
+}
+
 void Gph_W()
 {
  	Gyro.flagGph_W=3;
@@ -648,71 +631,22 @@
 {
     unsigned int lengf;
     lengf = 1;
-    switch(Gyro.CMD_In) {
-        case 0x99://Mintainance
-            lengf=6;
-            CRC_N=8;
-            break;
-
-        case 0xB0://Delta_Bins
-            lengf=6;
-            CRC_N=9;
-            break;
-
-       case 0xA0://Delta_PS
-            lengf=6;
-            CRC_N=8;
-            break;
-            
-        case 0xDD://m_rate
-            lengf=6;
-            CRC_N=44;
-            break;
-
-        case 0x0A: //m_stymul
-            lengf=8;
-            break;
-
-        case 0xE9://DeviceMode
-            lengf=6;
-            CRC_N=8;
-            break;
-        case 0xE8://DeviceMode
-
-            lengf=6;
-            CRC_N=8;
-            break;
-   
-          case 0xA5://DeviceMode
-
-            lengf=6;
-            CRC_N=8;
-            break;
-                 
-        case 0xD8://m_control
-
-            lengf=6;
-            CRC_N=6;
-            break;
-
-        case 0xD9://m_control
-
-            lengf=6;
-            CRC_N=8;
-            break;
-            
-        case 0xE4: 
-            lengf=8;
-            break;
-            
-            
-            case 0xE6: 
-            lengf=8;
-            break;
-     
-    }
-    
-    return lengf;
+    switch(Gyro.CMD_In) 
+    {
+       case 0x99:  lengf=6; CRC_N=8;     break;  //Mintainance
+       case 0xB0:  lengf=6; CRC_N=9;     break;  //Delta_Bins
+       case 0x0F:  lengf=6; CRC_N=8;     break;  //Delta_Bins
+       case 0xA0:  lengf=6; CRC_N=8;     break;  //Delta_PS
+       case 0xDD:  lengf=6; CRC_N=44;    break;  //m_rate    
+       case 0x0A:  lengf=8;           	 break;	 //m_stymul
+       case 0xE9:  lengf=6; CRC_N=8;	 break;	 //DeviceMode
+       case 0xE8:  lengf=6; CRC_N=8; 	 break;  //DeviceMode
+       case 0xA5:  lengf=6; CRC_N=8;     break;  //DeviceMode
+       case 0xD8:  lengf=6; CRC_N=6;     break;  //m_control   
+       case 0xD9:  lengf=6; CRC_N=8;     break;  //m_control
+       case 0xE4:  lengf=8;              break;  //M_VIB_W
+       case 0xE6:  lengf=8;              break;  //M_Gph_W
+    }  return lengf;
 }
 
 void Read_CMD(void)
@@ -725,15 +659,15 @@
   	// если есть первый байт 
     if (BuffTemp[0] != SOC_In) {
        ReadCon1(BuffTemp);
-       Gyro.RsErrLine += 0x100;//WriteCon("\n\r ...Error.... ");
+       Gyro.RsErrLine += 0x100;
        BuffTemp[99]=Gyro.RsErrLine; 
        }
     } 
     else if(CountBuFFIn==2) //если второй байт
-    {		
-         if (BuffTemp[1] != Gyro.My_Addres) {
+    {		//                                 широковещаительный
+         if (BuffTemp[1] != Gyro.My_Addres /*|| BuffTemp[1] !=0x1f*/) {
             ReadCon1(BuffTemp); 
-            Gyro.RsErrLine += 0x1;WriteCon("\n\r ...Error_ADDRES.... ");
+            Gyro.RsErrLine += 0x1;
           } 
     } 
     else if(CountBuFFIn==3) // если третий байт
@@ -769,103 +703,48 @@
      {
       ReadCon1(BuffTemp); 
       switch(Gyro.CMD_In) {
-             
-                case 0x99:
-                    Gyro.ModeOut=0;
-                    CMD_Maintenance(); 
-                break;
-                             
-                case 0xD8:
-                    CMD_M_Control_D8();
-                break;
-               
-                case 0xE9://чтение параметров
-                    CMD_M_Param_R();
-                break;
-                    
-                case 0xE8://запись параметра
-                    CMD_M_Param_W();
-                break;     
-                     
-               case 0xDA:
-    				switch(Gyro.My_Addres)
-   						 {//смещение поджига и подсветки в зависимости от адреса ГЛД
-  						  case 0:
-  						  Gyro.Discharg =  StartDischarg  << ShiftStart0;
-					 	  Gyro.BackLight = StartBackLight << ShiftStart0;
-  						  break;
-	    				  case 1:
-                          Gyro.Discharg =  StartDischarg  << ShiftStart1;
-                          Gyro.BackLight = StartBackLight << ShiftStart1;
-                          break;
-                          case 2:
-                          Gyro.Discharg =  StartDischarg  << ShiftStart2;
-                          Gyro.BackLight = StartBackLight << ShiftStart2;
-                          break;
-                          case 3:
-                          Gyro.Discharg =  StartDischarg  << ShiftStart3;
-                          Gyro.BackLight = StartBackLight << ShiftStart3;
-                          break;
-                          }
-                break;
-            
-                case 0xD9:
-                    CMD_M_Control_D9();
-                break;
-               
-                case 0x0A:
-                    CMD_M_Stymul();
-                break;
-               
-                case 0xDD: //Rate
-                  TempParam=(BuffTemp[3]) & 0x9f; 
+      case 0x99: Gyro.ModeOut=0;  	CMD_Maintenance(); 							 break;
+      case 0xD8: 					CMD_M_Control_D8();		   					 break;
+      case 0xE9:	 				CMD_M_Param_R();							 break;		//чтение параметров
+      case 0xE8: 					CMD_M_Param_W(); 							 break;     //запись параметра
+      case 0xDA:                    GLDStartDischarg();  						 break; 
+      case 0xD9: 		            CMD_M_Control_D9();				             break;
+      case 0x0A:	                CMD_M_Stymul();					             break;
+      case 0xDD: 	TempParam=(BuffTemp[3]) & 0x9f; 							//Rate
                   switch(TempParam) {
   				  case  Rate1  :  CMD_Rate(); 			 	    				break;  
 				  case  Rate2  :  CMD_Rate2();             						break;
-				  case  PRate1 :  Gyro.ModeOut=1; Gyro.Rate1_Event=0; 	    	break;  
-				  case  PRate2 :  Gyro.ModeOut=2; Gyro.Reper_Event=0;			break;  
+				  case  PRate1 :  Gyro.ModeOut=1;	    						break;  
+				  case  PRate2 :  Gyro.ModeOut=2;								break;  
 				 }
-                break; 
-         
-               case 0xA0:  //Delta_PS
-                  DropDelay();//выставка задержки для мультидропа сбрасывается в команде CMD_Maintenance() на () микросекунд; 
-                  TempParam=(BuffTemp[3]) & 0x90; 
+      break;      //DropDelay(); выставка задержки для мультидропа сбрасывается в команде CMD_Maintenance() на () микросекунд; 
+      case 0xA0:  DropDelay();    TempParam=(BuffTemp[3]) & 0x90; 				//Delta_PS
                   switch(TempParam) {
   				  case  Delta_500  :  CMD_Delta_PS();		 	    			break;  
 				  case  Delta_EXT  :  CMD_Delta_PS();              				break;
 				  case  PDelta_500 :  Gyro.ModeOut=3; 		 	    			break;  
 				  case  PDelta_EXT :  Gyro.ModeOut=4;              				break;
 				 }
-			   break;
-              
-               case 0xB0://Delta_Bins
-                  DropDelay();//выставка задержки для мультидропа сбрасывается в команде CMD_Maintenance() на () микросекунд; 
+	  break;
+	  case 0xB0:  DropDelay();	TempParam =	TempParam=(BuffTemp[3]>>7);	        //Delta_Bins
                   switch(TempParam) {
   				  case  PDelta_Bins:  Gyro.ModeOut=5; 		 	    			break;  
 				  case  Delta_Bins :  CMD_Delta_Bins();             			break;
 				 }
-               break;
-  
-               case 0x0F://B_Delta
-                  TempParam = (((BuffTemp[3])>>4) & 0x9); 
+	  break;
+  	  case 0x0F:   DropDelay(); TempParam = (((BuffTemp[3])>>4) & 0x9); 						//B_Delta
                   switch(TempParam) {
   				  case  PB_Delta_EXT: Gyro.ModeOut=6; 		 	  				break;  
 				  case  PB_Delta_INT: Gyro.ModeOut=7;             				break;
 				  case  B_Delta_EXT:  CMD_B_Delta();		      				break;   
     			  case  B_Delta_INT:  CMD_B_Delta();              				break;   		
     			}
-               break;
-              
-                case 0xE4:
-                    CMD_M_vib();
-                break; 
-              
-               case 0xE6:
-                    Gph_W();
-               break; 
-               Gyro.RsErrLine = 0;                   
-          }
-     }
+      break;
+      case 0xE4:                	 CMD_M_vib(); 								break; 
+      case 0xE6:					 Gph_W();									break; 
+      Gyro.RsErrLine = 0;                       
+      }
+   }
 }