fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
209:224e7331a061
Parent:
208:19150d2b528f
Child:
211:ac8251b067d2
--- a/SPI.c	Tue Feb 07 10:11:35 2017 +0000
+++ b/SPI.c	Thu Apr 13 14:14:45 2017 +0000
@@ -52,10 +52,10 @@
 
 void InitMOD(void)
 {
-     for (int i = 0; i < 32; i++ ) 
+     for (int i = 0; i < 64; i++ ) 
  	 { 
-   	 if(i<16)   { ModArrayTriangle[i]=Mod; Mod+=1;}
-   	 else       { ModArrayTriangle[i]=Mod; Mod-=1;}
+   	 if(i<32)   { ModArrayTriangle[i]=Mod; Mod+=3;}
+   	 else       { ModArrayTriangle[i]=Mod; Mod-=3;}
      }
     
      for (int i = 0; i < 16; i++ ) 
@@ -66,43 +66,68 @@
 }
 void Modulator(void)
 {
+	if(!MODFlag)
+	{
 	switch(TypeMod) 
 		{
 	    case 0: LPC_DAC->DACR = (ModArraySin		[CountV64]*Gyro.ModAmp);    break;
 	    case 1: LPC_DAC->DACR = (ModArraySaw		[CountV64]*Gyro.ModAmp);  	break;
 	    case 2: LPC_DAC->DACR = (ModArrayTriangle	[CountV64]*Gyro.ModAmp);  	break;
 	    }
+	}
 }
 void  PLCRegul(void)
 {	
     unsigned int temp;
     static int  CountFaza; 	
- if(Gyro.RgConA&0x8)
-	{	              
-         for (CountFaza = 0; CountFaza <32; CountFaza++ )
-                {
-                	SinPls+=  BuffADC_64Point[ (CountFaza + Gyro.PLC_Phase)  & 0x3f];
-                }    
-         for (CountFaza = 32; CountFaza <64; CountFaza++)
-                {
-                	SinMns+=  BuffADC_64Point[(CountFaza + Gyro.PLC_Phase)  & 0x3f];
-                }   
-      ADCDIF = SinMns-SinPls; 
+       
+        for (CountFaza = 0; CountFaza <32; CountFaza++ )      	SinPls+=  BuffADC_64Point[ (CountFaza + Gyro.PLC_Phase)  & 0x3f];
+        for (CountFaza = 32; CountFaza <64; CountFaza++)		SinMns+=  BuffADC_64Point[ (CountFaza + Gyro.PLC_Phase)  & 0x3f];
+        Gyro.PLC_Eror = SinMns-SinPls; 
+     
       /*sprintf((Time),"%d\r\n",Gyro.PLC_Phase);
       WriteCon(Time);*/
-      if(ADCDIF>0) Spi.DAC_B+=1 * Gyro.PLC_Gain;
-      else Spi.DAC_B-=1 * Gyro.PLC_Gain;
-      
-      if      ( Spi.DAC_B < 15300 )	    Spi.DAC_B = 32000;            //проверка на переваливание за границу.  
-      else if ( Spi.DAC_B > 53000 ) 	Spi.DAC_B = 32000;
+      	if(Gyro.RgConA&0x8)
+			{
+		      if(Gyro.PLC_Eror>0) {Spi.DAC_B+=1 * Gyro.PLC_Gain;}
+		      else 				  {Spi.DAC_B-=1 * Gyro.PLC_Gain;}
+		    }  
+		if(Gyro.PLC_Eror>0) {Gyro.PLC_Eror_count++;}
+     	else 				 {Gyro.PLC_Eror_count--;}
+     
+      	if      ( Spi.DAC_B < 10300 )   Spi.DAC_B = 32000;            //проверка на переваливание за границу.  
+      	else if ( Spi.DAC_B > 57000 ) 	Spi.DAC_B = 32000;
 
    		SinPls=0;
    		SinMns=0;
-    }  
+     
 }
 
  
+void  PLCRegul250(void)
+{	
+    unsigned int temp;
+    static int  CountFaza; 	
+    temp = MODCount;
+        for (CountFaza = 0; CountFaza <32; CountFaza++ )      	SinPls+=  BuffADC_64Point[ (CountFaza + Gyro.PLC_Phase)  & 0x3f];
+        for (CountFaza = 32; CountFaza <64; CountFaza++)		SinMns+=  BuffADC_64Point[ (CountFaza + Gyro.PLC_Phase)  & 0x3f];
+        Gyro.PLC_Eror = SinMns-SinPls; 
+         /*sprintf((Time)," %d %d %d\r\n",SinPls, SinMns, Gyro.PLC_Eror);
+         WriteCon(Time);*/
+      	if(Gyro.RgConA&0x8)
+			{
+		      if(Gyro.PLC_Eror>0) {Spi.DAC_B+=1 * Gyro.PLC_Gain;}
+		      else 				  {Spi.DAC_B-=1 * Gyro.PLC_Gain;}
+		    }  
+		if(Gyro.PLC_Eror>0) {Gyro.PLC_Eror_count++;}
+     	else 				{Gyro.PLC_Eror_count--;}
+     
+      	if      ( Spi.DAC_B < 10300 )   Spi.DAC_B = 32000;            //проверка на переваливание за границу.  
+      	else if ( Spi.DAC_B > 57000 ) 	Spi.DAC_B = 32000;
 
+   		SinPls=0;
+   		SinMns=0; 
+}
                 
                 
          
@@ -112,21 +137,33 @@
 void ADS_Acum(void)
 {
     Spi.ADC_NewData = 0;
-    Gyro.Termo 	= (unsigned int)(((Spi.ADC1>>1) +  Gyro.Tmp_OffsetT4) *  Gyro.Tmp_scaleT4);
-    Gyro.In1   	=  Spi.ADC2;
-    Gyro.In2   	=  Spi.ADC3;
-    Gyro.DeltaT = (unsigned int)(((Spi.ADC4>>1) +  Gyro.Tmp_OffsetT5) *  Gyro.Tmp_scaleT5);
-   
+   // Gyro.Termo 	= (unsigned int)(((Spi.ADC1>>1) +  Gyro.Tmp_OffsetT4) *  Gyro.Tmp_scaleT4);
+    Gyro.Termo 	= (unsigned int)(Spi.ADC1>>1);
+    Gyro.IN1_Accum	+=  Spi.ADC2;
+    Gyro.IN2_Accum	+=  Spi.ADC3;
+   // Gyro.DeltaT = (unsigned int)(((Spi.ADC4>>1) +  Gyro.Tmp_OffsetT5) *  Gyro.Tmp_scaleT5);
+   Gyro.DeltaT = (unsigned int)(Spi.ADC4>>1);
  
     TempA = (0xffff - Spi.ADC5);  		// перевернем знак  и умножим на два (было 32000...0 стало 0 ...32000 /*сдвиг(<<1) стало 0 ...64000*/)
     TempTermLM = Spi.ADC1; 
-    
     Gyro.ADF_Accum += TempA;
     Gyro.ADS_Accum += TempA;
    /// Gyro.ADS_AccumTermLM+=TempTermLM;
     Gyro.ADF_Count ++;
     Gyro.ADS_Count ++;
+    Gyro.ADM_Count ++;
+     /*   sprintf((Time),"%d %d\r\n",((Gyro.In1>>1) - 0x4fff),(Spi.DAC_B-0x4fff));
+        WriteCon(Time);*/
+    if (Gyro.ADM_Count > 255) {	
+         Gyro.In1 =  Gyro.IN1_Accum>>8;
+   		 Gyro.In2 =  Gyro.IN2_Accum>>8;
+        /* sprintf((Time),"%d     %i    %d    %d\r\n", Gyro.In1, Gyro.In2,  GyroP.Str.DAC_current_Work,  Spi.DAC_A );
+         WriteCon(Time);*/
+   		 Gyro.IN1_Accum=0;
+   		 Gyro.IN2_Accum=0;
+    	 Gyro.ADM_Count=0;
 
+    	}   
     if (Gyro.ADF_Count > 15) {					// если прошло 16 тактов виброподвеса
         Gyro.AD_Fast = Gyro.ADF_Accum << 11;	//обновляем данные и приводим в один масштаб
         Gyro.ADF_Count = 0;//
@@ -140,10 +177,7 @@
         Gyro.ADS_Accum = 0;
         Gyro.ADS_AccumTermLM=0;
         Gyro.ADS_NewData = 1;
-    /*  sprintf((Time),"%d\r\n",Spi.ADC5);
-      WriteCon(Time);*/
-        //srand(Gyro.AD_Slow);  
-    }
+	}
 }
 void SPI_Exchange(void)  // новая функция чтения, в нецй не должно быть ничего лишнего
 {
@@ -156,12 +190,7 @@
     Spi.ADC2_Accum += LPC_SSP0->DR;
     Spi.ADC1_Accum += LPC_SSP0->DR;
     Spi.ADC5_Accum += ADC5New;	       
-   // ADC5Dif = (ADC5New) - (ADC5Old);
-   // ADC5Old=ADC5New; 
-   /*    
-sprintf((Time)," %d\r\n", (Buff_Restored_Mod[CountV64]));
-WriteCon(Time);
-   */
+
     while (LPC_SSP0->SR & RX_SSP_notEMPT) 	
     {
     DummySPI = LPC_SSP0->DR;   //если буфер SPI не пуст.//очистить буфер.
@@ -180,47 +209,11 @@
         Spi.ADC4_Accum  = 0;
         Spi.ADC5_Accum  = 0;
         Spi.ADC_NewData = 1;
+
        }
    
-        BuffADC_64Point[CountV64]=ADC5New;
+   if(!MODFlag) BuffADC_64Point[CountV64]=ADC5New;
         Buff_ADC_5[CountV255] = (0x7fff-ADC5New)<<2;
-        
-
-/*
-        PulseADC_16Point += Buff_ADC_5[CountV255];
-        PulseADC_16Point -= Buff_ADC_5[(CountV255-16)& 0xff];                    			// заполнение буфера накопленых приращений за 16 тактов
-        BuffADC_16Point[CountV64] = (Pulse_16Point);
-
-        PulseADC_32Point +=  Buff_ADC_5[CountV255];
-        PulseADC_32Point -=  Buff_ADC_5[(CountV255-32)& 0xff ];  								// заполнение буфера накопленых приращений за 32 тактов
-        BuffADC_32Point[CountV64] = (PulseADC_32Point );
-  
-        PulseADC_32PointD +=  Buff_ADC_5[CountV255];
-        PulseADC_32PointD -=  Buff_ADC_5[(CountV255-32)& 0xff];									// заполнение буфера накопленых приращений за 32 тактов Двойныз
-        PulseADC_32PointD +=  Buff_ADC_5[(CountV255-48)& 0xff];									//
-        PulseADC_32PointD -=  Buff_ADC_5[(CountV255-64)& 0xff];									// 
-        BuffADC_32PointD[CountV64] = PulseADC_32PointD ;    
-    */
-       /* PulseADC_64Point +=  (Buff_ADC_5[CountV255]);
-        PulseADC_64Point -=  Buff_ADC_5[(CountV255-64) & 0xff];  								// заполнение буфера накопленых приращений за два 64 тактов
-        BuffADC_64Point[CountV64] = (PulseADC_64Point);*/
-        //ADCDIF +=  BuffADC_64Point[CountV64];
-        /// Buff_Restored_Mod[CountV64] = BuffADC_32PointD[CountV64] - BuffADC_64Point[CountV64];
-       
-       /* if(ADC5Old>3)
-        {
-        sprintf((Time),"%d %d \r\n",  BuffADC_64Point[CountV64], Buff_Restored_Mod[CountV64]);
-   		WriteCon(Time);
-   		ADC5Old=0;
-   		}
-   		else ADC5Old++;
-        */
- //   BackLightOFF
-     
-       // ADCDIF +=  BuffADC_64Point[CountV64]/*>>5*/;
-    /* sprintf((Time),"%d %d\r\n", ADC5New, PulseADC_64Point);
-   		WriteCon(Time);*/
-
 
 }
 
@@ -249,251 +242,20 @@
       Gyro.CuruAngle=0;
       WriteCon(Time);
 }
-
-
-
-/*
-
-void PlcRegul(void)		
- 														//Программа расчет напряжения для модулятора(//выполняется 1.25 микросек.)
-{   
-    
-    int templm=0;
-    int PLC_In;
-    int tempDac;
-    if(start<=5)
-    {
-    	if(ttt)
-    	{//           +25 С°
-    	templm = (Gyro.TermoNKU-Gyro.Termo); //дельта 
-    	if(templm>0) Gyro.Ktermo=1;
-    	else Gyro.Ktermo=0;
-    	Spi.DAC_B+=templm;
-    	ttt=0;
-    	}
-    }
- 
-    if(!(Gyro.PinReg & PinRegBitL) && (start>0)) start--; 
-
-    else if((start==0))
-      {
-       
-         PLC_In = Gyro.AD_Slow;					//выбираем даные для фильтрации
-   		 Gyro.PLC_Delta    = PLC_In - Gyro.PLC_Old;								//узнаем приращение
-   		 Gyro.PLC_DeltaADD = Gyro.PLC_Delta * Gyro.PLC_ADC_DOld;				//приращение с учетом знака (и количества) прошлого приращения
-    	 Gyro.PLC_Old 	   = PLC_In;											//запоминание значения
-        if(Gyro.flagGph_W)
-            {
-         		AD_MAX=0; 
-         		Gyro.flagGph_W--; 
-         		Gyro.PLC_Error2Mode=3;
-         	}     																//если изменился коэфициент усиления ФД  //3600 (размер моды порядка 3000)
-         if((Gyro.PLC_Lern < 150) && (Gyro.PLC_Error2Mode != 0)) 
-            {    			//пробигаем по нескольким значениям цап(60*0х3с=0хВВ8) для определения максимальной амплитуды.
-        		
-        		if(Gyro.Ktermo)Spi.DAC_B += 0x3c;         			                               	//добовляем в значение цапа 60
-        		else Spi.DAC_B -= 0x3c;
-        		if(AD_MAX < PLC_In){AD_MAX = PLC_In;}    	 	          		    //если максимальная амплитуда меньше текущей записываем новую максимальную амплитуду.      
-        		else if ((AD_MAX>PLC_In)&&(AD_MAX>1550800000)) r++;    	      		//если текущая амплитуда меньше максимально найденной то инкрементируем счетчик.
-        		if (r>10)
-        		{
-        			Gyro.PLC_Lern=151;
-        			Gyro.PLC_Error2Mode=3;
-        		}		       													//если текущая амплитуда меньше максимально найденной в течении 5 тактов то выходим из поиска
-         		Gyro.CuruAngle = 0;   											//не считаем угол пока ищем максивальную амплитуду.
-        	} 																	//работает только первые ~30-40 секунд (37 сек).
-     if (Gyro.PLC_Lern<160) Gyro.PLC_Lern++;  
-     
-     if(AD_MAX < PLC_In) {AD_MAX = PLC_In; l=0;}                      			//обновление максимального значения амплитуды обнуление счетчика малого понижения амплитуды.                  
-     else l++;                                   								//инкрементируем счетчик малого понижения желаемой амплитуды (максимальной замеченной)
-     if((l > 300)&&(Gyro.PLC_Error2Mode == 0)) {AD_MAX -= 2107200;k=15;l=0;} 	//если счетчик малого понижения амплитуды больше 100(аммплитуда не обновлялась 100 раз). m 
-     if     ((k == 15)&&(Gyro.PLC_Lern > 150))   Spi.DAC_B += 75;               //после уменьшения максимальной амплитуды двигаем шевелем цап 
-     else if((k ==  1)&&(Gyro.PLC_Lern > 150))  {Spi.DAC_B -= 75; k=0;l=0;}     //для быстрог поиска новог максимума.
-     if(k>0)k--;
-                                                          
-     Gyro.PlC_MaxD=(unsigned int)(AD_MAX-PLC_In);              					//ищем разницу между желаемой и действительной амплитудами.  
- 
-     if(Gyro.ModJump==1) {            ///прыжок с моды на моду. (-->)   
-        Gyro.OldCuruAngle = Gyro.CuruAngle;
-       Gyro.ModJump=0;
-       Spi.DAC_B += 4300;
-       Gyro.PLC_Error2Mode=1;
-       Gyro.StopCuruAngle=2;
-    } 
-    
-    if(Gyro.ModJump==2) {            ///прыжок с моды на моду. (<--)   
-        Gyro.OldCuruAngle = Gyro.CuruAngle;         
-       Gyro.ModJump=0;
-       Spi.DAC_B -= 5250;
-       Gyro.PLC_Error2Mode=1;
-       Gyro.StopCuruAngle=2;
-    } 
-    
-    if(Gyro.RgConA&0x8) {	       												// если  контур регулирования замкнут
-        if      ( Gyro.PLC_Error2Mode > 0) { Gyro.PLC_Error2Mode --; Gyro.PLC_ADC_DOld = 0;}  // если ошибка(нахожление в двух модовом)
-        else if ( Gyro.PLC_DeltaADD > 0)   { Gyro.PLC_ADC_DOld =  1;}
-        else if ( Gyro.PLC_DeltaADD < 0)   { Gyro.PLC_ADC_DOld = -1;}
-        else                               { Gyro.PLC_ADC_DOld =  1;}
-    } 
-    else {Gyro.PLC_Error2Mode = 1; Gyro.PLC_DeltaADD = 0;}
-    
-    ///прыжок с моды на моду.
-    
-  
-
-
-    
-    tempADC5=0x7fff-Spi.ADC5;
-    //  контур замкнут       включен лазер			
-    if((Gyro.RgConA&0x8) && (tempADC5>1000)) 
-      { 
-   		      if(Gyro.PlC_MaxD>(50<<17)) {							// 3 режим регулирования
-      		  tempDac=(unsigned int)(Gyro.PlC_MaxD>>19);
-     		  if(tempDac>600) tempDac=600;   //ограничение на регулирование если очень большая разница амплитуд
-       		  Spi.DAC_B += Gyro.PLC_ADC_DOld * tempDac;      //новое значение в цап (±1 * значение регулировки)
-      		  tempDac   =  Gyro.PLC_ADC_DOld * tempDac;      //используется только для выдачи
-      		  flagmod=3;
-  		    } 
-		    else if(Gyro.PlC_MaxD>(12<<17)) {					// 2 режим регулирования
-      		  tempDac=(unsigned int)(Gyro.PlC_MaxD>>19);
-     		  Spi.DAC_B += Gyro.PLC_ADC_DOld * (tempDac);
-      		  tempDac    = Gyro.PLC_ADC_DOld * (tempDac);     //используется только для выдачи
-      		  flagmod=2;
-   		    } 
-   		    else if(Gyro.PlC_MaxD<(2<<17)) {                     //режим если дельта равна 0;
-      		  tempDac=2;
-      		  Spi.DAC_B += Gyro.PLC_ADC_DOld * tempDac;
-              flagmod=0;
-            } 
-            else {
-     		  tempDac=2; 			// 1 режим регулирования
-    		  Spi.DAC_B += Gyro.PLC_ADC_DOld *tempDac;
-              tempDac = Gyro.PLC_ADC_DOld * tempDac;
-              flagmod=1;
-         	}
-       } 
-  	 
-  	 	
- if      ( Spi.DAC_B < 15300 )	{Spi.DAC_B = 32000; Gyro.PLC_Error2Mode = 5; Gyro.PLC_DeltaADD = 0;}            //проверка на переваливание за границу.  
- else if ( Spi.DAC_B > 53000) 	{Spi.DAC_B = 32000; Gyro.PLC_Error2Mode = 5; Gyro.PLC_DeltaADD = 0;}
-
+void ShowMod2(void)//технологическая функция для просмотра в ориджине мод на всем диапазпне цап
+{
+	unsigned int step = 30, ENDMOD=53000;
+	sprintf((Time),"%d %d %d %d     %d   %d   %d\r\n", Gyro.CuruAngle, Spi.DAC_B, Gyro.AD_Slow, Spi.ADC5, 0xfFFf-Spi.ADC1, Spi.ADC1, Gyro.Termo);
+    Gyro.CuruAngle=0;
+    WriteCon(Time);
+	Spi.DAC_B+=step;
+	if(Spi.DAC_B>ENDMOD)
+	{
+		Gyro.LogMod=0;
+		PlcON
+		Spi.DAC_B = 32000;
+	}
 }
-    if(Gyro.StopCuruAngle) {Gyro.CuruAngle = Gyro.OldCuruAngle; Gyro.StopCuruAngle--;}
-    ///////////////////////
-    //////////лог//////////
-    ///////////////////////
-    if(Gyro.LogPLC==1) {
-       
-        sprintf((Time),"%d %d  %d %d %d %d %d %d %d \r\n",Gyro.CuruAngle, Gyro.Frq, Gyro.MaxAmp, Spi.DAC_B, tempDac,  flagmod, AD_MAX, PLC_In, Gyro.Termo);//выдаем в терминал для постройки граффика регулировки периметра.
-        Gyro.CuruAngle=0;
-        Gyro.tempdelta=0;
-        Gyro.tempdelta2=0;
-        WriteCon(Time);
-
-    }
-}
-
-
-
-*/
-/*
-
-void PlcRegul(void)			//Программа расчет напряжения для модулятора
-{
-		int PLC_In;
-
-
-		PLC_In = Gyro.AD_Slow;									//выбираем даные для фильтрации
-//		PLC_In = Gyro.AD_Fast;
-        //или+,или-(знак)
-		Gyro.PLC_Delta 		= PLC_In - Gyro.PLC_Old;						// узнаем приращение
-		//                       (знак)  *   (то на что инкрементировали цап)
-		Gyro.PLC_DeltaADD 	= Gyro.PLC_Delta * Gyro.PLC_ADC_DOld;			//приращение с учетом знака (и количества) прошлого приращения
-		Gyro.PLC_Old 		= PLC_In;										// запоминание значения
-
-	    if(Gyro.RgConA&0x2)											// если включон контур регулирования
-	    {
-			if 		(Gyro.PLC_Error2Mode > 0)				{Gyro.PLC_Error2Mode --; 						Gyro.PLC_ADC_DOld = 0; } 	// если ошибка(нахожление в двух модовом)
-			else if ( Gyro.PLC_Delta > 	(3000 * 65536)) 	{Spi.DAC_B += 2500;	Gyro.PLC_Error2Mode = 5; 	Gyro.PLC_ADC_DOld = 0;}		// проверка на двух модовость
-			else if ( Gyro.PLC_Delta < 	(-3000 * 65536)) 	{Spi.DAC_B += 2500;	Gyro.PLC_Error2Mode = 5; 	Gyro.PLC_ADC_DOld = 0;}
-
-	  	    else if (Gyro.PLC_DeltaADD > 0)
-			{
-
-//			Gyro.PLC_ADC_DOld =	(Gyro.PLC_DeltaADD /6553600 )+1;
-			Gyro.PLC_ADC_DOld = 1;
-			}
-	  	    else if (Gyro.PLC_DeltaADD < 0)
-			{
-
-//				Gyro.PLC_ADC_DOld =	(Gyro.PLC_DeltaADD /6553600 )-1;
-				Gyro.PLC_ADC_DOld = -1;
-			}
-			else
-			{
-				Gyro.PLC_ADC_DOld = 1;
-			}
-		}
-		else
-		{
-			Gyro.PLC_Error2Mode = 1; Gyro.PLC_DeltaADD = 0;
-		}
-
-
-		Spi.DAC_B += Gyro.PLC_ADC_DOld * 16;
-
-
-		if ( Spi.DAC_B < 1000 ) 	{Spi.DAC_B = 32000;  Gyro.PLC_Error2Mode = 5; Gyro.PLC_DeltaADD = 0;}
-		if ( Spi.DAC_B > 63000 ) 	{Spi.DAC_B = 32000;  Gyro.PLC_Error2Mode = 5; Gyro.PLC_DeltaADD = 0;}
-
-		if(Gyro.LogPLC==1)
-		{
-		 sprintf((Time),"%d %d %d %d %d %d\r\n", Spi.DAC_B, temp9,flagmod, AD_MAX, Gyro.AD_Slow, k);//выдаем в терминал для постройки граффика регулировки периметра.
-         WriteCon(Time);
-        }
-
- }
-
-
-*//*
-void PlcRegul_old(void)  // на всякий случай
-{
-    int Delta;
-
-    ADD_AMP+=Spi.ADC5;
-    Count_AMP++;
-    if(Count_AMP>=(32*32+8)) {
-        Delta = ADD_AMP - Cur_Amp;
-
-        if(Gyro.RgConA&0x2) {
-            if 		(Znak_Amp > 1)			{
-                Znak_Amp --;
-            } else if ( Delta > 30000000 ) 	{
-                AD_Regul += 5000000;
-                Znak_Amp = 5;
-            } else if ( Delta < (-3000000)) 	{
-                AD_Regul += 5000000;
-                Znak_Amp = 5;
-            } else if ((Delta * Znak_Amp) > 0) {
-                Znak_Amp = 1;
-                AD_Regul -= (Delta * Znak_Amp * 10);
-            } else {
-                Znak_Amp = -1;
-                AD_Regul -= (Delta * Znak_Amp * 10);
-            }
-
-            Spi.DAC_B  = (AD_Regul + 0x1fffffff)/65536;
-        }
-        Cur_Amp=ADD_AMP;
-        Count_AMP=0;
-        ADD_AMP=0;
-    }
-
-}
-
-
-*/
-
 void DAC_OutPut(void)//выдача в цапы
 {
   	if(Gyro.RgConA&0x10)	Modulator();
@@ -501,38 +263,15 @@
     LPC_SSP0->DR=0x5555;
     LPC_SSP0->DR=0x5555;
 
-    if (CountV31 & 1) {                      	//если нечетный такт то
+    if (CountV31 & 1) 
+    {                      	//если нечетный такт то
         LPC_SSP0->DR = WRITE_DAC0;   			//e.команда для ЦАП_0 передавать.
         LPC_SSP0->DR = (Spi.DAC_A);         	//e. передача 12 бит
-    } else { //если такт четный.
+    } 
+    else 
+    { //если такт четный.
         LPC_SSP0->DR = WRITE_DAC1 ; //e.команда для ЦАП_1 передавать.
         LPC_SSP0->DR = (Spi.DAC_B);
-       // t//emp9 = Spi.DAC_B;//для вывода.
-   /*
-         switch( Gyro.StrayPLC_flag) {
-
-            case 0://режим без воздействия
-                LPC_SSP0->DR = (Spi.DAC_B);
-                temp9=Spi.DAC_B;
-                break;
-        case 1://малое воздействие +
-                temp9=Spi.DAC_B + Gyro.StrayPLC_Pls;
-                LPC_SSP0->DR = temp9;
-                break;
-
-            case 3://малое воздействие -
-                temp9=Spi.DAC_B + Gyro.StrayPLC_Mns;
-                LPC_SSP0->DR = temp9;
-                break;
-
-            case 2://большое воздействие +
-                temp9=Spi.DAC_B + Gyro.StrayPLC_2Mode;
-                LPC_SSP0->DR = temp9;//вгоняем в многомодовый режим
-                break;
-
-        }*/
-        // LPC_SSP0->DR = Spi.DAC_B;        	//e. передача 12 бит
-
     }
 }
 
@@ -541,74 +280,3 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/*
-void SPI_Exchange(void)
-{
-    unsigned int DummySPI;
-
-
-    Spi.ADC5 = LPC_SSP0->DR;
-    Spi.ADC4 = LPC_SSP0->DR;
-    Spi.ADC3 = LPC_SSP0->DR;
-    Spi.ADC2 = LPC_SSP0->DR;
-    Spi.ADC1 = LPC_SSP0->DR;
-
-    Input.ArrayIn[2]= Spi.ADC5;
-
-    DAC_OutPut();
-
-//  LPC_DAC->CR = (((SinPLC[CountV64]*35/5)+24300));// модулятор
-
-    while (LPC_SSP0->SR & RX_SSP_notEMPT)  		                //если буфер SPI не пуст.
-    DummySPI = LPC_SSP0->DR;	                                //очистить буфер.
-
-    //заполнение буферов еденичных значений АЦП.
-    Buff_ADC_1	[CountV31]  = Spi.ADC1;
-    Buff_ADC_2	[CountV31]  = Spi.ADC2;
-    Buff_ADC_3	[CountV31]  = Spi.ADC3;
-    Buff_ADC_4	[CountV31]  = Spi.ADC4;
-    Buff_ADC_5	[CountV255] = Spi.ADC5;    // ампл ацп.
-
-
-   	Temp_AMP64P += Buff_ADC_5[CountV255];
-    Temp_AMP64P -= Buff_ADC_5[(CountV255-64) & 0xff];                    // заполнение буфера накопленых приращений за 8 тактов
-    Buff_AMP64P[CountV255] = (unsigned int) (Temp_AMP64P);
-
-
-    Temp_ADC_2 += Buff_ADC_2[CountV31];
-    Temp_ADC_2 -= Buff_ADC_2[(CountV31-32) & 0xff];
-
-    Temp_ADC_3 += Buff_ADC_3[CountV31];
-    Temp_ADC_3 -= Buff_ADC_3[(CountV31-32) & 0xff];
-
-    Temp_ADC_4 += Buff_ADC_4[CountV31];
-    Temp_ADC_4 -= Buff_ADC_4[(CountV31-32) & 0xff];
-
-    Temp_ADC_5 += Buff_ADC_1[CountV255];
-    Temp_ADC_5 -= Buff_ADC_1[(CountV255-32) & 0xff];
-    Spi.PLC_NewData=1;
-}*/
\ No newline at end of file