自分用QEI

Dependents:   FourOmniMecha

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers QEI.h Source File

QEI.h

00001 #ifndef QEI_H
00002 #define QEI_H
00003 
00004 #include "mbed.h"
00005 
00006 
00007 class QEI
00008 {
00009 public:
00010     //引数は(A相のピン,B相のピン,1回転のパルスPPR,timerインスタンス,tickerインスタンス)
00011     QEI(PinName A,PinName B,int PPR,Timer *timer,Ticker *ticker);
00012 
00013     //初期設定
00014     void init();
00015     
00016     void Setting_ABstate_Table();//エンコーダの参照表に代入
00017 
00018     //MoveAve_pulse_to_RPSを使う場合に記述.3333usごとの割り込み
00019     void useAvePRS();
00020 
00021     //パルスカウント
00022     void PulseCount();
00023 
00024     //移動平均とるだけ
00025     void MoveAve_pulse();
00026 
00027     //移動平均を使ったRPS算出
00028     void MoveAve_pulse_to_RPS();
00029 
00030     //MoveAve_pulse_to_RPSで出したRPS値を返す
00031     double getRPS();
00032 
00033     //オドメトリ用関数
00034     double Odometry(double WheelDia);
00035 
00036     //返し値を反転させることができる
00037     void rotReverce();
00038 
00039     //パルスの確認
00040     int returnPulse();
00041 
00042     //********************処理をもっと頭良さげにしたものが2********************
00043     //*********************違いはコメントアウトで説明*************************
00044     void useAvePRS2();//をタイマー割り込みで使用
00045 
00046     void PulseCount2();//エンコーダの表を参照するようになった
00047 
00048     void rotReverce2();//表自体を反転させることで正転方向を変更する
00049 
00050     void MoveAve_pulse_to_RPS2();//表を参照した移動平均とrps.多分こっちのが処理少し軽い
00051 
00052     double getRPS2();//MoveAve_pulse_to_RPS2で出したRPS値を返す
00053 
00054     double Odometry2(double WheelDia);//オドメトリ用関数2
00055 
00056 
00057 private:
00058     InterruptIn chA;
00059     InterruptIn chB;
00060     Timer *_timer;
00061     Ticker *_ticker;
00062     int _PPR;
00063     double current_rps;
00064     uint8_t pre_ABstate;
00065     const int data_sizeof = 30;
00066     int pulse,pulseData[data_sizeof];
00067     double pulseAve;
00068     double rps;
00069     int8_t NrotDIR;
00070     double pre_time;   //修正1:関数内staticからグローバルへ
00071     int ABstate_Table[15];
00072 };
00073 
00074 #endif