fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
87:7e575d26d6d0
Parent:
86:398da56ef751
Child:
92:c892f0311aa7
--- a/QEI.c	Thu Mar 24 08:20:43 2016 +0000
+++ b/QEI.c	Thu Mar 24 09:16:55 2016 +0000
@@ -31,94 +31,8 @@
 
 int unsigned Cur_QEI, Last_QEI;
 
-
-
-
-
-
-
 // ДАВАЙ попробуем сделать буфера в целых (знаковы)
 
-
-void D_QEI_Int(void)
-{
-
-    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;// накопление в буфер еденичных значений приращения по каждому такту.
-
-    ////////////////////////////////////////////////////////////////////////////////////////////
-    ///////////////////////////////////////////////////////////////////////////////////////////
-
-// зачем это. мож к этому воремени стали вращатся назад
-
-    if (LPC_QEI->STAT) {					//e. "+" direction //r. стали вращаться в "+"
-        Gyro.Cnt_Mns = Dif_QEI;
-    } else {
-        Gyro.Cnt_Pls = -Dif_QEI;
-    }
-
-
-// внимание , все расчеты в знаковых целых
-
-
-    ////////// ???? Заплатка
-    ////////// ???? Проблема начального заполнения буферов
-    //////////////////////////////////////////////////////////////////////////////////////////////
-    // если прошло 32 такта вибро подвеса начать заполнять остальные буверы.
-    Pulse_8Point += Buff_1Point[CountV255];
-    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 тактов
-    Buff_16Point[CountV31] = Pulse_16Point;
-
-    Pulse_32Point += Buff_1Point[CountV255];
-    Pulse_32Point -= Buff_1Point[(CountV255-32) & 0xff];  								// заполнение буфера накопленых приращений за 32 тактов
-    Buff_32Point[CountV31] = 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];		//Востанавливаем синус (для работы вибропривода)
-
-    Gyro.Cnt_Dif  =  (Pulse_32Point);
-
-    if(Buff_Restored_sin [CountV31] > 0)
-        Temp_F_ras += Buff_Restored_sin [CountV31];
-    else Temp_F_ras -= Buff_Restored_sin [CountV31]; 			// расчет амплитуды
-
-    if (CountV31 == 0) {								// если определеный так, то переписываем амиплитуду
-        Gyro.F_ras = Temp_F_ras;
-        Temp_F_ras = 0;
-    }
-// зачем это.
-
-
-
- /*   if(Buff_32Point[CountV255]>0) {
-        Temp_F_ras += Buff_32Point[CountV255];
-    } else if ((CountV255 & 0x1f)==0) {
-        Gyro.F_ras=Temp_F_ras;
-        Temp_F_ras=0;
-    } else {
-        Temp_F_ras -=  Buff_32Point[CountV255];
-    }
-
-*/
-}
-
-
-
 void D_QEI(void)
 {
     Dif_QEI=0;
@@ -165,23 +79,19 @@
 
         Buff_16PointD[CountV255] = /*(unsigned int)*/ (Pulse_16PointD /*+ 0xffff*/);
 
-
-//							Buff_Restored_sin [CountVf]= (unsigned int)( ((Buff_16Point[CountVf]*2)) - Buff_32Point[CountVf] );
-
         Buff_Restored_sin [CountV255]= /*(unsigned int)*/( Buff_16PointD [ CountV255] /*+ 65536 */ - Buff_32Point[CountV255] );
 
 
 
-        if(Buff_32Point[CountV255]>0) {
-            Temp_F_ras += Buff_32Point[CountV255];
-        } else if ((CountV255 & 0x1f)==0) {
-            Gyro.F_ras=Temp_F_ras;
-            Temp_F_ras=0;
-        } else {
-            Temp_F_ras -=  Buff_32Point[CountV255];
-        }
+    if(Buff_Restored_sin [CountV31] > 0)
+        Temp_F_ras += Buff_Restored_sin [CountV31];
+    else Temp_F_ras -= Buff_Restored_sin [CountV31]; 			// расчет амплитуды
 
-        //unsigned int T_Vib;
+    if (CountV31 == 0) {								// если определеный так, то переписываем амиплитуду
+        Gyro.F_ras = Temp_F_ras;
+        Temp_F_ras = 0;
+    }
+    
 
     } else if(CountV255 == 255) {
         FFF=1;//временная заплатка  для паузы перед заполнением остальных буферов