QEIその2
Dependents: Nucleo_Motor Nucleo_Motor mbed_test_enc mbed_touteki_MR1 ... more
Fork of QEI2 by
QEIver2です。 前回のQEIよりハードウェアの節約を実現しました。 基本的にメソッドの追加などはないですが、コンストラクタに引数を追加しました。 第五引数にTimerクラスのアドレスを突っ込むことでTimerクラスの共有ができます。 また従来のQEIクラスの非効率的なTimerクラスの使い方をなくすことで、複数のQEIを使うことができました
Diff: QEI.h
- 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; };