fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
108:030cdde08314
Parent:
107:4d178bcc9d8a
Child:
112:4a96133a1311
--- a/QEI.c	Fri Apr 01 16:13:55 2016 +0000
+++ b/QEI.c	Sat Apr 02 11:15:38 2016 +0000
@@ -14,6 +14,16 @@
 int Pulse_32Point;
 int Pulse_16PointD;
 int Iras=0,Temp_F_ras=0;
+
+int CaunAddPlus	=0;
+int CaunAddMin	=0;
+
+int CaunPlus	=0;
+int CaunMin		=0;
+
+
+
+
 int yy = 0;
 
 
@@ -24,6 +34,7 @@
 int Buff_16PointD		[32];
 int Buff_8Point			[32];
 int Buff_Restored_sin 	[32];
+
 int Buff_1Point			[256];			// этот на 256
 
 
@@ -43,13 +54,11 @@
     Cur_QEI  =  LPC_QEI->POS & 0xFFFF; // считывание текущего значения энкодера.
     Dif_QEI  =  (Cur_QEI - Last_QEI);  // получение приращения.()
     Last_QEI =  Cur_QEI;               // запись текущего значения энкодера в регистр предыдущего значения.
-
     if (Dif_QEI < -0xfff)  Dif_QEI += 0x10000;   // обработка прохода значения через ноль
     if (Dif_QEI >  0xfff)  Dif_QEI -= 0x10000;    // обработка прохода значения через ноль
-
+    Buff_1Point[CountV255] = Dif_QEI ; 	// накопление в буфер еденичных значений приращения по каждому такту.
 
-    Buff_1Point[CountV255] = /*(unsigned int)*/ (Dif_QEI /* + 0xffff*/  );// накопление в буфер еденичных значений приращения по каждому такту.
-
+ 
     ////////////////////////////////////////////////////////////////////////////////////////////
     ///////////////////////////////////////////////////////////////////////////////////////////
 /*
@@ -62,8 +71,7 @@
     ////////// ???? Заплатка
     ////////// ???? Проблема начального заполнения буферов
     //////////////////////////////////////////////////////////////////////////////////////////////
-   if(1)// if(FFF==1) { // если прошло 32 такта вибро подвеса начать заполнять остальные буверы.
-       {  Pulse_8Point += Buff_1Point[CountV255];
+        Pulse_8Point += Buff_1Point[CountV255];
         Pulse_8Point -= Buff_1Point[(CountV255-8) & 0xff];                    // заполнение буфера накопленых приращений за 8 тактов
         Buff_8Point[CountV31] = /*(unsigned int)*/ (Pulse_8Point/* + 0xffff*/);
 
@@ -81,29 +89,16 @@
         Pulse_16PointD += Buff_1Point[(CountV255-32) & 0xff];									//
         Pulse_16PointD -= Buff_1Point[(CountV255-48) & 0xff];									// з
 
-        Buff_16PointD[CountV31] = /*(unsigned int)*/ (Pulse_16PointD /*+ 0xffff*/);
+        Buff_16PointD[CountV31] = Pulse_16PointD ;
 
-        Buff_Restored_sin [CountV31]= /*(unsigned int)*/( Buff_16PointD [ CountV31] /*+ 65536 */ - Buff_32Point[CountV31] );
-    
-        
-    if(Buff_Restored_sin [CountV31] > 0)Temp_F_ras += Buff_Restored_sin [CountV31];
-    else Temp_F_ras -= Buff_Restored_sin [CountV31]; 			// расчет амплитуды
+        Buff_Restored_sin [CountV31]= Buff_16PointD [ CountV31] - Buff_32Point[CountV31] ;
 
-    if (CountV31 == 0) {								// если определеный так, то переписываем амиплитуду
-        Gyro.F_ras = Temp_F_ras;
-        Temp_F_ras = 0;
-       
-    }
-   
+   	
+ //  	if(Buff_Restored_sin [CountV31] > 0)Temp_F_ras += Buff_Restored_sin [CountV31];
+ //   	else Temp_F_ras -= Buff_Restored_sin [CountV31]; 			// расчет амплитуды
+    
+    	if((Buff_Restored_sin [CountV31]) > 0)	CaunAddPlus += Buff_Restored_sin  [CountV31];
+    	else 									CaunAddMin	-= (Buff_Restored_sin [CountV31]); 			// расчет амплитуды
 
-    } else if(CountV255 == 255) {
-        FFF=1;//временная заплатка  для паузы перед заполнением остальных буферов
-    //    for (yy = 0; yy < 31; yy++ ) {
-   ///         Buff_1Point [yy] = 0x00;
-   //         Buff_16Point [yy] = 0x00;
-   //         Buff_32Point [yy] = 0x00;
-   //         Buff_16PointD [yy] = 0x0;
-   //     }
-
-    }
+    
 }