forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Revision:
220:04c54405b82d
Parent:
219:2d3475d0dd1b
Child:
221:53b256368ca1
--- a/Command.c	Wed Sep 27 13:09:24 2017 +0000
+++ b/Command.c	Fri Oct 20 13:16:32 2017 +0000
@@ -160,37 +160,36 @@
 
 	BuffTemp[0] = Gyro.SOC_Out;
     BuffTemp[1] = Gyro.My_Addres;
-  
-    	iRate_7 =(Buff_Restored_Mod[(t - Gyro.PLC_Phase)&0x1f])&0xffff;
+
+    	iRate_7 =(BuffADC_10v[(t - Gyro.PLC_Phase)&0x3f])&0xffff;
     BuffTemp[ 2] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 3] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков
    		
-   		iRate_7  =(Buff_Restored_Mod[((t - 2) - (Gyro.PLC_Phase ))&0x1f])&0xffff;
+   		iRate_7  =(BuffADC_10v[((t - 2) - (Gyro.PLC_Phase ))&0x3f])&0xffff;
     BuffTemp[ 4] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 5] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
-                  
-                  
-        iRate_7  =(Buff_Restored_Mod[((t - 4) - (Gyro.PLC_Phase))&0x1f])&0xffff;
+                        
+        iRate_7  =(BuffADC_10v[((t - 4) - (Gyro.PLC_Phase))&0x3f])&0xffff;
     BuffTemp[ 6] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 7] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-        iRate_7  =(Buff_Restored_Mod[((t - 6) - (Gyro.PLC_Phase))&0x1f])&0xffff;
+        iRate_7  =(BuffADC_10v[((t - 6) - (Gyro.PLC_Phase))&0x3f])&0xffff;
     BuffTemp[ 8] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 9] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-        iRate_7  =(Buff_Restored_Mod[((t - 8) - (Gyro.PLC_Phase))&0x1f])&0xffff;
+        iRate_7  =(BuffADC_10v[((t - 8) - (Gyro.PLC_Phase))&0x3f])&0xffff;
     BuffTemp[10] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[11] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
        
-  		iRate_7  =(Buff_Restored_Mod[((t - 10) - (Gyro.PLC_Phase))&0x1f])&0xffff;
+  		iRate_7  =(BuffADC_10v[((t - 10) - (Gyro.PLC_Phase))&0x3f])&0xffff;
     BuffTemp[12] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[13] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-         iRate_7 =(Buff_Restored_Mod[((t - 12) - (Gyro.PLC_Phase))&0x1f])&0xffff;
+         iRate_7 =(BuffADC_10v[((t - 12) - (Gyro.PLC_Phase))&0x3f])&0xffff;
     BuffTemp[14] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[15] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
         
-         iRate_7 = (Buff_Restored_Mod[((t - 14) - (Gyro.PLC_Phase))&0x1f])&0xffff;
+         iRate_7 = (BuffADC_10v[((t - 14) - (Gyro.PLC_Phase))&0x3f])&0xffff;
     BuffTemp[16] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[17] =(iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;    
      
@@ -198,39 +197,39 @@
      
      
      
-          iRate_7 = ModArraySin32[(t)] - 50;
+         /* iRate_7 = ModArraySin32[(t)+ (Gyro.PLC_Phase)] - 50;
     BuffTemp[ 18] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 19] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
        
-          iRate_7 = ModArraySin32[(t - 2)&0x1f] - 50;
+          iRate_7 = ModArraySin32[(t - 2+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 20] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 21] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
           
-          iRate_7 = ModArraySin32[(t - 4)&0x1f] - 50;
+          iRate_7 = ModArraySin32[(t - 4+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 22] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 23] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
            
-          iRate_7 = ModArraySin32[(t - 6)&0x1f] - 50;
+          iRate_7 = ModArraySin32[(t - 6+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 24] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 25] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
         
-          iRate_7 = ModArraySin32[(t - 8)&0x1f] - 50;
+          iRate_7 = ModArraySin32[(t - 8+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 26] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 27] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
 
-          iRate_7 = ModArraySin32[(t - 10)&0x1f] - 50;
+          iRate_7 = ModArraySin32[(t - 10+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 28] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 29] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
         
-          iRate_7 = ModArraySin32[(t - 12)&0x1f] - 50;
+          iRate_7 = ModArraySin32[(t - 12+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 30] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 31] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
            
-          iRate_7 = ModArraySin32[(t - 14)&0x1f] - 50;
+          iRate_7 = ModArraySin32[(t - 14+ (Gyro.PLC_Phase))&0x3f] - 50;
     BuffTemp[ 32] = (iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
     BuffTemp[ 33] = (iRate_7 >>  0) & 0xff;//младший байт разности счетчиков;
    
-         
+         */
          
             iRate_7 = (Spi.DAC_B - 0x7fff);
     BuffTemp[ 34] =(iRate_7 >>  8) & 0xff;//младший байт разности счетчиков
@@ -348,6 +347,7 @@
      			case 23: Gyro.AmpMin 		= GyroP.Str.AmpMin;	    												break; 
      			case 24: Gyro.AmpTD  		= GyroP.Str.AmpTD;     													break; 
      			case 25: Gyro.AmpPerDel		= GyroP.Str.AmpPerDel;	     											break;
+     			case 33: Gyro.ShiftMod		= GyroP.Str.ShiftMod;	     											break;
      			case 34: Gyro.ModAmp		= GyroP.Str.ModAmp;	     												break;
      			case 56: Gyro.Gain_Sin 		= GyroP.Str.Gain_Sin;	     		
      					 Out_G_photo(Gyro.Gain_Sin, Gyro.Gain_Cos); 
@@ -710,8 +710,9 @@
     BuffTemp[23] =  (Temp1 >> 0) & 0xff;	
     										//24
 
-    Temp = Gyro.PLC_Eror_count>>6; //Gyro.AD_Slow >> 16; 
-    Gyro.PLC_Eror_count = 0;
+    Temp =  PLC_EROR; 
+    PLC_EROR=0;
+    
     BuffTemp[24] = (Temp >> 8) & 0xff;//                                        //25 ФД СРП
     BuffTemp[25] = (Temp >> 0) & 0xff;// 										//26 ФД СРП
         
@@ -723,11 +724,11 @@
     BuffTemp[28] = (Temp >> 8) & 0xff;											//29 ADC 1
     BuffTemp[29] = (Temp >> 0) & 0xff;											//30
 	
-	Temp1 = ((Gyro.In1>>1)*0.800875)-0x3e0b;
+	Temp1 = 0;//((Gyro.In1>>1)*0.800875)-0x3e0b;
     BuffTemp[30] = (Temp1 >> 8) & 0xff;//in1//2									//31 ADC 2
     BuffTemp[31] = (Temp1 >> 0) & 0xff;											//32
 
- 	Temp1 =((Gyro.In2>>1)*0.800875)-0x3e0b;// - 0x4FFF;
+ 	Temp1 =0;//((Gyro.In2>>1)*0.800875)-0x3e0b;// - 0x4FFF;
     BuffTemp[32] = (Temp1 >> 8) & 0xff;											//33 ADC 3
     BuffTemp[33] = (Temp1 >> 0) & 0xff;//in2//3									//34
   	
@@ -1224,32 +1225,16 @@
    				 LPC_MCPWM->LIM2 = F_vib;
    				 
              }       
-             if (Time[0] == 'C') {		// выдача технологическая
-      			AmpP += 1;
-      		    T_vibP = F_vib/10000;
-       			T_vib_1 = AmpP * T_vibP;
-         		T_vib_2 = T_vibP * (10000-AmpP +1);
-                LPC_MCPWM->MAT2 = T_vib_2;
-                LPC_MCPWM->MAT1 = T_vib_1;
-            }
-             if (Time[0] == 'c') {		// выдача технологическая
-                 AmpP -= 1;
-                 T_vibP = F_vib/10000;
-        		 T_vib_1 = AmpP * T_vibP;
-        		 T_vib_2 = T_vibP * (10000-AmpP+1 );
-                
-                LPC_MCPWM->MAT2 = T_vib_2;
-                LPC_MCPWM->MAT1 = T_vib_1;
-             }  
-             if (Time[0] == 'X') {		// выдача технологическая
-               if(Gyro.Debag2 >5) Gyro.Debag2=0;
-               else  Gyro.Debag2=200;
-            }
-             if (Time[0] == 'x') {		// выдача технологическая
-               
-               if(Gyro.Debag >200) Gyro.Debag=0;
-               else  Gyro.Debag=2500;
-             } 
+             
+             
+             
+             if (Time[0] == 'C') Spi.DAC_A+=200;
+             if (Time[0] == 'c') Spi.DAC_A-=200;
+             if (Time[0] == 'X') Spi.DAC_B+=2000;
+             if (Time[0] == 'x') Spi.DAC_B-=2000;
+             
+             
+             
              if (Time[0] == 'p') {		// выдача технологическая
               // PlcOFF //Gyro.RgConA&0x8=0;
               
@@ -1259,8 +1244,8 @@
             //   Spi.DAC_B = 32767;
             }
              if (Time[0] == 'o') {		// выдача технологическая
-             if(Gyro.LogMod==2)Gyro.LogMod=0;
-             else              Gyro.LogMod=2;
+             if(TypeMod==0)TypeMod=5;
+             else              TypeMod=0;
              
             //   Spi.DAC_B = 32000;
              } 
@@ -1274,35 +1259,50 @@
             	
             }       
              
-            if (Time[0] == 'm') 
+
+            if (Time[0] == 'b') 
             {		// выдача технологическая
+            	sprintf((Time),"10000 \r\n");
+    	   		WriteCon(Time);
                for(int q=0; q<64; q++)
             		{
-                	sprintf((Time),"%d  \r\n",    BuffADC_64Point[q]>>7);
-    	   			WriteCon(Time);
-            		}
-            		
+                  	
+                  	if(((CountV255+q)&0xff)==0)
+                  	{
+                  	sprintf((Time),"12000 \r\n");
+    	   			WriteCon(Time); 
+    	   			}
+    	   			else
+    	   			{	
+                  	sprintf((Time),"%d \r\n",	BuffADC_1Point[(CountV64+q)&0xff] );
+    	   			WriteCon(Time); 
+    	   			}	
+    	   			
+                	
+                	}
             } 
             
-            if (Time[0] == 'n') 
+                    if (Time[0] == 'n') 
             {		// выдача технологическая
                for(int q=0; q<64; q++)
             		{
-                  	sprintf((Time),"%d  \r\n",    BuffADC_1Point[q]);
+                  	sprintf((Time),"%d \r\n",	Buff_OUT[q]);
+    	   			WriteCon(Time); 
+    	   			 
+    	   				
+                	}
+                	Spi.DAC_B+=500;
+            } 
+                    if (Time[0] == 'm') 
+            {		// выдача технологическая
+               for(int q=0; q<64; q++)
+            		{
+                  	sprintf((Time),"%d \r\n",	BuffADC_64Point[q] );
     	   			WriteCon(Time); 	
                 	}
-
             } 
            
-            if (Time[0] == 'b') 
-            {          
-                for(int q=13; q<21; q++)
-            		{
-                	sprintf((Time),"%d  \r\n",   (Buff_Restored_Mod[(q - Gyro.PLC_Phase)&0x1f])*(BuffADC_znak[q]));
-    	   			WriteCon(Time);
-            		}
-            } 
-            
+
             
             
             
@@ -1311,13 +1311,20 @@
                          
                 if (Time[0] == 'u') 
                 	{		// выдача технологическая
-               		MODFlag=0;  //Mod vibro Hz 
+               		Gyro.ShowMod2=1;  //Mod vibro Hz 
                   	}  
-           
+                 if (Time[0] == 'U') 
+                	{		// выдача технологическая
+               		Gyro.ShowMod2=0;  //Mod vibro Hz 
+                  	}            
                   
                 if (Time[0] == 'y') 
                 	{			//Mod 250 Hz 		PLCRegul250();
-               		MODFlag=2;
+      
+               		 if( Gyro.Debag) Gyro.Debag=0;
+               		 else Gyro.Debag=1;
+      
+      
                   	}
                 if (Time[0] == 'f') 
                 	{		// выдача технологическая