Yuta Uenodai / encoder

Dependents:   backdrive backdrive_3

Revision:
8:dd1732f51780
Parent:
4:c99eb511ac08
--- a/encoder.cpp	Sat Jan 05 07:16:33 2019 +0000
+++ b/encoder.cpp	Fri May 03 08:36:12 2019 +0000
@@ -7,12 +7,12 @@
     count[DELTA][ONE_BEFORE] = count[NORMAL][ONE_BEFORE] - count[NORMAL][TWO_BEFORE];
     count[DELTA][CURRENT]    = count[NORMAL][CURRENT] - count[NORMAL][ONE_BEFORE];
     
-    distance = count[NORMAL][CURRENT] * circle / ppr;
-    rpm = (count[DELTA][CURRENT]/ppr) * 60 / dt;
-    velocity = (count[DELTA][CURRENT]/ppr)*circle/dt;
+    distance = count[NORMAL][CURRENT] * circle * ppr_rev;
+    rpm = (count[DELTA][CURRENT]) * 60 *dt_rev * ppr_rev;
+    velocity = (count[DELTA][CURRENT])*circle*dt_rev * ppr_rev;
     //acceleration = (count[DELTA][CURRENT]-count[DELTA][ONE_BEFORE])/(dt_square*ppr) * circle;
     //omega = (2*PI*count[DELTA][CURRENT])/(ppr*dt);
-    delta_distance = (count[DELTA][CURRENT]/ppr)*circle;
+    delta_distance = (count[DELTA][CURRENT])*circle*ppr_rev;
     //1つ前・2つ前のデータを更新
     count[NORMAL][TWO_BEFORE] = count[NORMAL][ONE_BEFORE];
     count[NORMAL][ONE_BEFORE] = count[NORMAL][CURRENT];
@@ -89,7 +89,8 @@
     dt_square = dt*dt;
     circle  = PI*2.0f*_radius;
     radius = _radius;
-    
+    dt_rev = 1/dt;
+    ppr_rev = 1/ppr;
     switch(mode){
         case X1_ENCODE:
             aPhase.rise(this,&Encoder::readAphaseRise);