Six crescent shaped legs

Dependencies:   mbed

Committer:
sim642
Date:
Thu Apr 14 16:34:06 2016 +0000
Revision:
21:aee7370d74d1
Parent:
20:1ceae0d063c6
Child:
37:8021b3ce241a
Simplify dual-edge encoder handling

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sim642 2:cf0147952fb9 1 #ifndef ENCODER_H
sim642 2:cf0147952fb9 2 #define ENCODER_H
sim642 2:cf0147952fb9 3
sim642 2:cf0147952fb9 4 #include "mbed.h"
sim642 10:e9c106a8b0d0 5
sim642 10:e9c106a8b0d0 6 struct EncoderData
sim642 10:e9c106a8b0d0 7 {
sim642 10:e9c106a8b0d0 8 PinName encAPin, encBPin;
sim642 10:e9c106a8b0d0 9 int turnCount;
sim642 10:e9c106a8b0d0 10 };
sim642 2:cf0147952fb9 11
sim642 2:cf0147952fb9 12 class Encoder
sim642 2:cf0147952fb9 13 {
sim642 2:cf0147952fb9 14 public:
sim642 8:c3af2a1c206c 15 Encoder(EncoderData nData);
sim642 2:cf0147952fb9 16
sim642 14:4143ddddef1b 17 long getCount() const;
sim642 14:4143ddddef1b 18 float getTurn() const;
sim642 2:cf0147952fb9 19
sim642 8:c3af2a1c206c 20 protected:
sim642 8:c3af2a1c206c 21 EncoderData data;
sim642 8:c3af2a1c206c 22
sim642 2:cf0147952fb9 23 private:
sim642 21:aee7370d74d1 24 void changeA();
sim642 21:aee7370d74d1 25 void changeB();
sim642 21:aee7370d74d1 26 void changeCount(bool flipB);
sim642 2:cf0147952fb9 27
sim642 2:cf0147952fb9 28 InterruptIn intA, intB;
sim642 21:aee7370d74d1 29 volatile bool valA, valB;
sim642 2:cf0147952fb9 30
sim642 20:1ceae0d063c6 31 volatile long count;
sim642 2:cf0147952fb9 32 };
sim642 2:cf0147952fb9 33
sim642 2:cf0147952fb9 34 #endif // ENCODER_H