QEIその2

Dependents:   Nucleo_Motor Nucleo_Motor mbed_test_enc mbed_touteki_MR1 ... more

Fork of QEI2 by Kiko Ishimoto

QEIver2です。 前回のQEIよりハードウェアの節約を実現しました。 基本的にメソッドの追加などはないですが、コンストラクタに引数を追加しました。 第五引数にTimerクラスのアドレスを突っ込むことでTimerクラスの共有ができます。 また従来のQEIクラスの非効率的なTimerクラスの使い方をなくすことで、複数のQEIを使うことができました

Revision:
4:dd8e607964d2
Parent:
3:f285adb565b1
--- a/QEI.h	Mon Aug 31 01:05:02 2015 +0000
+++ b/QEI.h	Wed Sep 23 02:13:01 2015 +0000
@@ -22,7 +22,6 @@
         return *this;
     }
 public:
-
     typedef enum Encoding {
 
         X2_ENCODING,
@@ -31,7 +30,7 @@
     } Encoding;
 
 
-    QEI(PinName channelA, PinName channelB, PinName index, int pulsesPerRev,Timer *T, Encoding encoding = X2_ENCODING);
+    QEI(PinName channelA, PinName channelB, PinName index, int pulsesPerRev,Timer *T, Encoding encoding = X4_ENCODING);
 
     void qei_reset(void);
 
@@ -56,13 +55,13 @@
     void state(int i);
 private:
     Timer *timer;
-    Ticker Tick;
-    double RPM , RPS ,RPMS , RPUS;
+    //Ticker Tick;
+    float prev_time;  
+    double prev_angle;  
     float gettime() {
-        timer->start();
-        static float prev_time;
+        //timer->start();
         float a = timer->read()-prev_time;
-        prev_time=a;
+        prev_time=timer->read();
         return a;
     }
 
@@ -83,6 +82,7 @@
     int angle_pulses;
     volatile int pulses_;
     volatile int revolutions_;
+    double RPM , RPS ,RPMS , RPUS;
 
 };