fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
43:3f7c8a0ea59c
Parent:
42:6fc307c4963e
Child:
45:cbc955aecebe
--- a/QEI.c	Sun Feb 07 12:24:11 2016 +0000
+++ b/QEI.c	Sun Feb 07 16:01:14 2016 +0000
@@ -29,13 +29,12 @@
 
 */
 
-int Buff_32Point	[32];			// давай сделаем буфера поменьше
-int Buff_16Point	[32];			
-int Buff_16PointD	[32];
-int Buff_8Point		[32];
-int Buff_Restored_sin [32];
-
-int Buff_1Point		[256];			// этот на 256
+int Buff_32Point		[32];			// давай сделаем буфера поменьше
+int Buff_16Point		[32];
+int Buff_16PointD		[32];
+int Buff_8Point			[32];
+int Buff_Restored_sin 	[32];
+int Buff_1Point			[256];			// этот на 256
 
 
 
@@ -47,11 +46,11 @@
 
 
 
-// ДАВАЙ попробуем сделать бушера в целых (знаковы)
+// ДАВАЙ попробуем сделать буфера в целых (знаковы)
 void D_QEI_Int(void)
 {
 
-    Cur_QEI  =  LPC_QEI->POS & 0xFFFF; // считывание текущего значения энкодера.
+    Cur_QEI  =  LPC_QEI->POS & 0xFFFF; 	// считывание текущего значения энкодера.
     Dif_QEI  =  (Cur_QEI - Last_QEI);  // получение приращения.()
     Last_QEI =  Cur_QEI;               // запись текущего значения энкодера в регистр предыдущего значения.
 
@@ -73,39 +72,43 @@
     }
 
 
+// внимание , все расчеты в знаковых целых
+
 
     ////////// ???? Заплатка
     ////////// ???? Проблема начального заполнения буферов
     //////////////////////////////////////////////////////////////////////////////////////////////
     // если прошло 32 такта вибро подвеса начать заполнять остальные буверы.
     Pulse_8Point += Buff_1Point[CountV255];
-    Pulse_8Point -= Buff_1Point[(CountV255-8) & 0xff];                    // заполнение буфера накопленых приращений за 8 тактов
+    Pulse_8Point -= Buff_1Point[(CountV255-8) & 0xff];                   // заполнение буфера накопленых приращений за 8 тактов
     Buff_8Point[CountV31] =Pulse_8Point;
 
     Pulse_16Point += Buff_1Point[CountV255];
-    Pulse_16Point -= Buff_1Point[(CountV255-16) & 0xff];									// заполнение буфера накопленых приращений за 16 тактов
+    Pulse_16Point -= Buff_1Point[(CountV255-16) & 0xff];				// заполнение буфера накопленых приращений за 16 тактов
     Buff_16Point[CountV31] = Pulse_16Point;
 
     Pulse_32Point += Buff_1Point[CountV255];
     Pulse_32Point -= Buff_1Point[(CountV255-32) & 0xff];  								// заполнение буфера накопленых приращений за 32 тактов
     Buff_32Point[CountV31] = Pulse_32Point;
 
-
-
-
-    Gyro.Cnt_Dif  =  (Pulse_32Point);
-
     Pulse_16PointD += Buff_1Point[CountV255];
     Pulse_16PointD -= Buff_1Point[(CountV255-16) & 0xff];									// заполнение буфера накопленых приращений за 16 тактов Двойныз
     Pulse_16PointD += Buff_1Point[(CountV255-32) & 0xff];									//
     Pulse_16PointD -= Buff_1Point[(CountV255-48) & 0xff];									// з
+    Buff_16PointD[CountV31] = Pulse_16PointD;
+    Buff_Restored_sin [CountV31]= Buff_16PointD [ CountV31] - Buff_32Point[CountV31];		//Востанавливаем синус (для работы вибропривода)
 
-    Buff_16PointD[CountV31] = Pulse_16PointD;
-
+    Gyro.Cnt_Dif  =  (Pulse_32Point);
 
-//							Buff_Restored_sin [CountVf]= (unsigned int)( ((Buff_16Point[CountVf]*2)) - Buff_32Point[CountVf] );
+    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;
+    }
+// зачем это.
 
 
 
@@ -118,20 +121,11 @@
         Temp_F_ras -=  Buff_32Point[CountV255];
     }
 
-    //unsigned int T_Vib;
 
 }
 
 
 
-
-
-
-
-
-
-
-
 void D_QEI(void)
 {
     Dif_QEI=0;