forkd

Dependencies:   mbed

Fork of LGstaandart by Dmitry Kovalev

Revision:
222:7de7b3bf3a1d
Parent:
221:53b256368ca1
Child:
224:598aec95415f
--- a/Command.c	Mon Oct 23 05:31:10 2017 +0000
+++ b/Command.c	Mon Nov 20 13:06:31 2017 +0000
@@ -121,6 +121,7 @@
  	NVIC_EnableIRQ(EINT3_IRQn);
 }
  ///////////////end flah and boot///////////
+
  void M_RateA(void)
  {  
     switch(Gyro.ModeOut) 
@@ -135,6 +136,7 @@
     case  8: if(Gyro.Rate3_Event )				CMD_Rate3();			 		break;        	
     case  9: if(Gyro.Reper_Event ){				CMD_Rate2(); Gyro.ModeOut=0;}	break;
     case 10: if(Gyro.EvenRate7   ){				CMD_Rate7(); Gyro.EvenRate7=0;}	break;
+    case 11: if(Gyro.EvenRate5K  ){				M_Rate5K(); Gyro.EvenRate5K--;}	break;
     }
  }
  
@@ -145,6 +147,12 @@
 		BuffTemp[q]=0;
 	}
 }
+
+
+
+
+
+
 void CMD_Rate7(void)
 {
     //Buff_Restored_Mod[CountV31]    BuffADC_znak[q]
@@ -155,41 +163,40 @@
     int Temp;
     int Temp1;
    	float Temp2;
-    int Shift = -11463;
-    static unsigned int t=16;
+    static unsigned int t=0;
 
 	BuffTemp[0] = Gyro.SOC_Out;
     BuffTemp[1] = Gyro.My_Addres;
 
-    	iRate_7 =(BuffADC_10v_F[(t)&0x3f])&0xffff;
+	    	iRate_7  =	Buff_OUT[(t)] ;
     BuffTemp[ 2] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 3] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков
    		
-   		iRate_7  =(BuffADC_10v_F[(t - 2)&0x3f])&0xffff;
+	   		iRate_7  =	Buff_OUT[(t)+8] ;
     BuffTemp[ 4] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 5] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
                         
-        iRate_7  =(BuffADC_10v_F[((t - 4))&0x3f])&0xffff;
+	        iRate_7  =	Buff_OUT[(t)+16];
     BuffTemp[ 6] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 7] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-        iRate_7  =(BuffADC_10v_F[((t - 6))&0x3f])&0xffff;
+	        iRate_7  =	Buff_OUT[(t)+24];
     BuffTemp[ 8] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 9] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-        iRate_7  =(BuffADC_10v_F[((t - 8))&0x3f])&0xffff;
+	        iRate_7  =	Buff_OUT[(t)+32] ;
     BuffTemp[10] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[11] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
        
-  		iRate_7  =(BuffADC_10v[((t - 10))&0x3f])&0xffff;
+	  		iRate_7  = Buff_OUT[(t)+40] ;
     BuffTemp[12] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[13] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-         iRate_7 =(BuffADC_10v_F[((t - 12))&0x3f])&0xffff;
+	         iRate_7 =Buff_OUT[(t)+ 48];
     BuffTemp[14] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[15] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
-        
-         iRate_7 = (BuffADC_10v_F[((t - 14))&0x3f])&0xffff;
+	        
+	         iRate_7 = Buff_OUT[(t)+56] ;
     BuffTemp[16] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[17] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;    
      
@@ -197,35 +204,35 @@
      
      
      
-        iRate_7 = ModArraySin[(t)+ (Gyro.PLC_Phase)] - 50;
+	      iRate_7 =   ModArraySin[(t + Gyro.PLC_Phase)&0x3f] - 50;
     BuffTemp[ 18] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 19] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
        
-          iRate_7 = ModArraySin[(t - 2+ (Gyro.PLC_Phase))&0x3f] - 50;
+          iRate_7 = ModArraySin[(t + 8 + (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 20] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 21] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
           
-          iRate_7 = ModArraySin[(t - 4+ (Gyro.PLC_Phase))&0x3f] - 50;
+          iRate_7 = ModArraySin[(t + 16 + (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 22] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 23] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
            
-          iRate_7 = ModArraySin[(t - 6+ (Gyro.PLC_Phase))&0x3f] - 50;
+          iRate_7 = ModArraySin[(t + 24 + (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 24] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 25] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
         
-          iRate_7 = ModArraySin[(t - 8+ (Gyro.PLC_Phase))&0x3f] - 50;
+          iRate_7 = ModArraySin[(t + 32 + (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 26] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 27] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-          iRate_7 = ModArraySin[(t - 10+ (Gyro.PLC_Phase))&0x3f] - 50;
+          iRate_7 = ModArraySin[(t + 40 + (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 28] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 29] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
         
-          iRate_7 = ModArraySin[(t - 12+ (Gyro.PLC_Phase))&0x3f] - 50;
+          iRate_7 = ModArraySin[(t + 48 + (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 30] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 31] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
            
-          iRate_7 = ModArraySin[(t - 14+ (Gyro.PLC_Phase))&0x3f] - 50;
+          iRate_7 = ModArraySin[(t + 56+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 32] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 33] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
    
@@ -258,8 +265,8 @@
 
     Check(BuffTemp, 42);
     WriteConN (BuffTemp,42);
- /*   if(t<31)t+=8;
-    else t =15;*/
+  /*  if(t<60)t+=32;
+    else t =0;*/
   
 }
 
@@ -305,7 +312,7 @@
    Param |=  BuffTemp[5];
  
    GyroP.Array[NP] = Param;
-   flash=GyroP.Array[5];
+   flash=GyroP.Array[115];
  
    switch(NP) 
    {
@@ -317,6 +324,9 @@
      			
      			case  4: if(Gyro.LG_Type)  Gyro.HFO_Min=((int)(GyroP.Str.DAC_current_Start*0.67)-2000);			    break; 
      			
+     			case  5: Gyro.TimeToJump	= GyroP.Str.TimeToJump;     											break; 
+     			case  6: Gyro.JumpDelta		= GyroP.Str.JumpDelta;     												break; 
+     			
      			case  7: Gyro.PLC_Phase	 	= GyroP.Str.PLC_Phase;     												break; 
      			case  8: Gyro.PLC_Gain		= GyroP.Str.PLC_Gain;     												break; 
      			case 12: Gyro.FrqPhase		= GyroP.Str.FrqPhase;	     											break; 
@@ -380,7 +390,7 @@
    
    Check(BuffTemp, 6);
    WriteConN (BuffTemp,6);
-   if(flash){GyroP.Array[5]=0; flash=0; WriteFlash(); ReadFlash ();}
+   if(flash){GyroP.Array[115]=0; flash=0; WriteFlash(); ReadFlash ();}
    
   
 }
@@ -629,6 +639,45 @@
     
 }
 
+
+  void M_Rate5K(void)
+ {
+ 	
+ 	unsigned int Temp;
+    BuffTemp[ 0] = Gyro.SOC_Out;												//1	--старт данных
+    BuffTemp[ 1] = Gyro.My_Addres;												//2 --адрес отвечающего устройствва
+ 	
+ 	//Temp=Gyro.CuruAngle;                                          	//приводим к форме вывода
+    BuffTemp[ 3] =(Gyro.CuruAngle >> 8) & 0xff;//старший байт разности счетчиков			7 --младший байт разности счетчиков
+    BuffTemp[ 2] =(Gyro.CuruAngle >> 0) & 0xff;//младший байт разности счетчиков			8 --старший байт разности счетчиков
+    Gyro.CuruAngle=0;
+    
+
+ //	Temp =(Spi.DAC_B-0x7fff);
+    BuffTemp[5] = (Spi.DAC_B >> 8) & 0xff;											//23 Выход регулятора рабочего периметра
+    BuffTemp[4] = (Spi.DAC_B >> 0) & 0xff;	
+ 	 	 
+ /*	   switch(Gyro.LG_Type) 
+    {
+     	case 1:  	Temp =(int)(((float)(Spi.DAC_A)/0.6667)- 0xefff); 	break;
+     	
+     	case 0:    //	Temp2 = (Spi.DAC_A*1.538) - 0xd80f;   
+					Temp =(int)(((float)(Spi.DAC_A)/0.64)- 56000); 	break;
+	}
+	*/
+	Temp=Spi.DAC_A;
+    BuffTemp[7] =(Temp >> 8) & 0xff;//выход регулятора гвч;					11 --выход регулятора ГВЧ
+    BuffTemp[6] =(Temp >> 0) & 0xff;	
+    
+  /*  sprintf((Time),"%d     %d    %d\r\n",Gyro.CuruAngle,(Spi.DAC_B-0x7fff),Temp);
+    WriteCon(Time);*/
+
+   //Check(BuffTemp, 7);
+    WriteConN (BuffTemp,8);
+    Gyro.EvenRate5K++;	  
+ }
+
+
 void CMD_Rate(void)
 { 
     Gyro.Rate1_Event=0;
@@ -672,8 +721,10 @@
      	case 1:  	Temp1 =(int)(((float)(Spi.DAC_A)/0.6667)- 0xefff); 	break;
      	
      	case 0:    //	Temp2 = (Spi.DAC_A*1.538) - 0xd80f;   
-					Temp1 =(int)(((float)(Spi.DAC_A)/0.64)- 56000); 	break;
+					Temp1 =(0xffff-Spi.DAC_A);	break;//Temp1 =(int)(((float)(Spi.DAC_A)/0.64)- 56000); 	break;
 	}
+	sprintf((Time),"%d %d \r\n",Spi.DAC_A,Temp1);
+    WriteCon(Time);
 	//Temp1=Gyro.DacIn/*-0x7fff*/;
     BuffTemp[10] = (Temp1 >> 8) & 0xff;//выход регулятора гвч;					11 --выход регулятора ГВЧ
     BuffTemp[11] = (Temp1 >> 0) & 0xff;										  //12 --выход регулятора ГВЧ
@@ -681,7 +732,7 @@
    
    
     if(Gyro.LG_Type) Temp =(int)(tempDeltaRegul);
-    else    		 Temp =(unsigned int)((0x7fff-Spi.ADC5)*0.79)<<1;
+    else  Temp =(unsigned int)(0xffff-Spi.ADC5) ; 		 //Temp =(unsigned int)((0x7fff-Spi.ADC5)*0.79)<<1;
     BuffTemp[12]=(Temp >> 8) & 0xff;//// HFO									13 --сигнал ошибки регулятора ГВЧ
     BuffTemp[13]=(Temp >> 0) & 0xff;////										14 --сигнал ошибки регулятора ГВЧ
   
@@ -803,7 +854,7 @@
     {
     	Gyro.DacIn=temp;
     	if(Gyro.LG_Type==1) Spi.DAC_A = ((unsigned int)((Gyro.DacIn+0x7011)*0.6667));
-    	else Spi.DAC_A = ((unsigned int)((Gyro.DacIn+23200)*0.64));
+    	else  Spi.DAC_A = (unsigned int)(0xffff-Gyro.DacIn); //Spi.DAC_A = ((unsigned int)((Gyro.DacIn+23200)*0.64));
     	
     	 	/*Temp2 = (Spi.DAC_A*1.538) - 0xd80f;   
 					Temp1=  (int)Temp2;	*/
@@ -882,6 +933,7 @@
 				    	 case 0x05: 	AVibOFF	 				break;
 				    	 case 0x01: 	HFOOFF 	 				break;
 				    	 case 0x03: 	PlcOFF 	 				break;
+				    	 case 0x02: 	Gyro.RgConA &= ~(1<<2); break;
 				    	}
      			break;
      			case 1:
@@ -902,10 +954,11 @@
      		 	case 0:
       					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;
+			    	 	case 0x02: 		Gyro.RgConA |= (1<<2);  break;
 				    	}
      			break;
      			case 1:
@@ -1147,6 +1200,11 @@
 				  case  PRate3 :  Gyro.ModeOut=8;								break; 
 				  case  Rate7  :  CMD_Rate7();	    							break; 
 				  case  PRate7 :  Gyro.ModeOut=10;								break;
+				  case  Rate5K :  M_Rate5K();	    							break; 
+				  case  PRate5K:  
+				  if(Gyro.ModeOut){}
+				  else  Gyro.ModeOut=11;							
+				  break;
 				  
 				 }
       break;      //DropDelay(); выставка задержки для мультидропа сбрасывается в команде CMD_Maintenance() на () микросекунд; 
@@ -1184,7 +1242,7 @@
 void TechLog(void)
 {
  unsigned int temp=0;
- 	if (ReadCon (Time))
+ 	/*if (ReadCon (Time))
     {
     	int a=0;
 /////////////////////////////////////////////////////////////////
@@ -1202,16 +1260,16 @@
 
 
 
-          /*  if (Time[0] == 'f') {		// выдача технологическая
+           if (Time[0] == 'f') {		// выдача технологическая
                Gyro.ModAmp += 1;
             sprintf((Time),"%d \r\n",  Gyro.ModAmp);
     		WriteCon(Time);
-            }*/
-           /* if (Time[0] == 'd') {		// выдача технологическая
+            }
+            if (Time[0] == 'd') {		// выдача технологическая
                Gyro.ModAmp -= 1;
                sprintf((Time),"%d \r\n",  Gyro.ModAmp);
     		   WriteCon(Time);
-            }*/
+            }
              if (Time[0] == 'V') {		// выдача технологическая
                 F_vib += 1;
                  LPC_MCPWM->LIM1 = F_vib;
@@ -1286,9 +1344,10 @@
             {		// выдача технологическая
                for(int q=0; q<64; q++)
             		{
-                  	sprintf((Time),"%d \r\n",	Buff_OUT[q]);
+                  	sprintf((Time),"%d   ", Buff_OUT[q]);
     	   			WriteCon(Time); 
-    	   			 
+    	   			sprintf((Time),"%d \r\n",ModArraySin[(q+Gyro.PLC_Phase)&0x3f]);
+    	   			WriteCon(Time); 
     	   				
                 	}
                 	Spi.DAC_B+=500;
@@ -1365,7 +1424,7 @@
                 }
                  
            
-      }
+      }*/
 }