Yuta Uenodai / encoder

Dependents:   backdrive backdrive_3

Committer:
takenowa
Date:
Sun Jul 22 00:15:08 2018 +0000
Revision:
2:4bb7c8730d91
Parent:
0:4b99060621fd
Child:
3:6dce9d79da13

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takenowa 0:4b99060621fd 1 #ifndef ENCODER_H
takenowa 0:4b99060621fd 2 #define ENCODER_H
takenowa 0:4b99060621fd 3
takenowa 0:4b99060621fd 4 #include "mbed.h"
takenowa 0:4b99060621fd 5 #include "arm_math.h"
takenowa 0:4b99060621fd 6
takenowa 0:4b99060621fd 7 enum CH{
takenowa 0:4b99060621fd 8 DISTANCE,
takenowa 0:4b99060621fd 9 RPM,
takenowa 0:4b99060621fd 10 VELOCITY,
takenowa 0:4b99060621fd 11 ACCELERATION,
takenowa 0:4b99060621fd 12 OMEGA,
takenowa 0:4b99060621fd 13 DELTA_DISTANCE,
takenowa 0:4b99060621fd 14 };
takenowa 0:4b99060621fd 15
takenowa 0:4b99060621fd 16 enum TYPE_NUMBER{
takenowa 0:4b99060621fd 17 NORMAL,
takenowa 0:4b99060621fd 18 DELTA,
takenowa 0:4b99060621fd 19 TYPE_NUMBER,
takenowa 0:4b99060621fd 20 };
takenowa 0:4b99060621fd 21
takenowa 0:4b99060621fd 22 enum BEFORE_NUMBER{
takenowa 2:4bb7c8730d91 23 CURRENT,
takenowa 0:4b99060621fd 24 ONE_BEFORE,
takenowa 0:4b99060621fd 25 TWO_BEFORE,
takenowa 0:4b99060621fd 26 BEFORE_NUMBER,
takenowa 0:4b99060621fd 27 };
takenowa 0:4b99060621fd 28
takenowa 0:4b99060621fd 29 class Encoder
takenowa 0:4b99060621fd 30 {
takenowa 0:4b99060621fd 31 public:
takenowa 2:4bb7c8730d91 32 Encoder(PinName a_phase , PinName b_phase );
takenowa 0:4b99060621fd 33 void calState();
takenowa 0:4b99060621fd 34
takenowa 0:4b99060621fd 35 float getState(int ch);
takenowa 0:4b99060621fd 36
takenowa 0:4b99060621fd 37 void reset();
takenowa 0:4b99060621fd 38
takenowa 0:4b99060621fd 39 void init(float _ppr, float _radius,float _dt);
takenowa 0:4b99060621fd 40
takenowa 0:4b99060621fd 41 private:
takenowa 0:4b99060621fd 42 void read();
takenowa 0:4b99060621fd 43
takenowa 0:4b99060621fd 44 float rpm, distance, omega, velocity, radius, delta_distance,
takenowa 0:4b99060621fd 45 ppr, dt, dt_square, circle, acceleration;
takenowa 0:4b99060621fd 46
takenowa 2:4bb7c8730d91 47 float count[TYPE_NUMBER][BEFORE_NUMBER];/* = {
takenowa 2:4bb7c8730d91 48 {[NORMAL][NOW], [NORMAL][ONE_BEFORE], [NORMAL][TWO_BEFORE]},
takenowa 2:4bb7c8730d91 49 {[DELTA][NOW], [DELTA][ONE_BEFORE], [DELTA][TWO_BEFORE]}
takenowa 2:4bb7c8730d91 50 }
takenowa 2:4bb7c8730d91 51 */
takenowa 0:4b99060621fd 52 InterruptIn aPhase;
takenowa 0:4b99060621fd 53 DigitalIn bPhase;
takenowa 0:4b99060621fd 54 };
takenowa 0:4b99060621fd 55
takenowa 0:4b99060621fd 56 #endif
takenowa 0:4b99060621fd 57