自分用ロータリーエンコーダのライブラリ. Z相のパルスは一切使用していない. タイマ割り込みを使ってRPSをとる場合,MvgAve的なものが含まれる関数によって可能だが,正直いらない気がする.
Diff: QEI.cpp
- Revision:
- 4:1789feb609ac
- Parent:
- 3:82af76bc5a6e
- Child:
- 6:deb3445444c5
diff -r 82af76bc5a6e -r 1789feb609ac QEI.cpp --- a/QEI.cpp Wed Nov 04 06:09:10 2020 +0000 +++ b/QEI.cpp Wed Nov 04 10:58:08 2020 +0000 @@ -70,7 +70,7 @@ // 変数リセット void QEI::resetVariable() { - for(int i =0; i<mvgave_array_size; i++) pulse_data[i] = 0; + for(int i =0; i<_MVGAVE_ARRAY_SIZE; i++) pulse_data[i] = 0; pre_state_ab = (ch_a.read() << 1) | ch_b.read(); mvg_ave_rps = 0; pulse = 0; @@ -167,10 +167,10 @@ //移動平均算出 pulse_data[editing_num] = pulse; - editing_num == mvgave_array_size-1 ? editing_num = 0 : editing_num++;//editing_numが配列以上になったら0に戻す + editing_num == _MVGAVE_ARRAY_SIZE-1 ? editing_num = 0 : editing_num++;//editing_numが配列以上になったら0に戻す pulse_average = 0; - for(int i =0; i < mvgave_array_size; i++) pulse_average += pulse_data[i]; - pulse_average /= mvgave_array_size; + for(int i =0; i < _MVGAVE_ARRAY_SIZE; i++) pulse_average += pulse_data[i]; + pulse_average /= _MVGAVE_ARRAY_SIZE; pulse = 0; // オーバーフロー対策.この処理をするため,他の機能が使えなくなる. //RPS算出