test

Dependencies:   RemoteIR mbed

Committer:
szh66
Date:
Sun May 07 01:31:52 2017 +0000
Revision:
3:34a763e93423
Parent:
2:b78dfa2afe92
Child:
6:9f698d1b2996
motor circuit test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
szh66 3:34a763e93423 1 #ifndef ENCODER_H
szh66 3:34a763e93423 2 #define ENCODER_H
szh66 3:34a763e93423 3 #include "mbed.h"
szh66 3:34a763e93423 4
szh66 3:34a763e93423 5 /*
szh66 3:34a763e93423 6 * Reset both encoders
szh66 3:34a763e93423 7 */
szh66 3:34a763e93423 8 void resetEncoders();
szh66 3:34a763e93423 9
szh66 3:34a763e93423 10 /*
szh66 3:34a763e93423 11 Returns the average number of pulses across both encoders since last reset. Unit is encoder pulses; intended for straight driving only.
szh66 3:34a763e93423 12 */
szh66 3:34a763e93423 13 int getEncoderDistance();
szh66 3:34a763e93423 14
szh66 3:34a763e93423 15
szh66 3:34a763e93423 16 class Encoder {
szh66 3:34a763e93423 17 public:
szh66 3:34a763e93423 18 volatile int pulses;
szh66 3:34a763e93423 19
szh66 3:34a763e93423 20 Encoder(PinName channelA, PinName channelB);
szh66 3:34a763e93423 21
szh66 3:34a763e93423 22 //Reset the encoder
szh66 3:34a763e93423 23 void reset(void);
szh66 3:34a763e93423 24
szh66 3:34a763e93423 25 //Gets pulses by directly querying the encoder.
szh66 3:34a763e93423 26 operator int() {
szh66 3:34a763e93423 27 return pulses;
szh66 3:34a763e93423 28 }
szh66 3:34a763e93423 29
szh66 3:34a763e93423 30 private:
szh66 3:34a763e93423 31 InterruptIn channelA_;
szh66 3:34a763e93423 32 InterruptIn channelB_;
szh66 3:34a763e93423 33 int prevState_;
szh66 3:34a763e93423 34 int currState_;
szh66 3:34a763e93423 35
szh66 3:34a763e93423 36 void encode(void);
szh66 3:34a763e93423 37 };
szh66 3:34a763e93423 38
szh66 3:34a763e93423 39
szh66 3:34a763e93423 40 extern Encoder leftEncoder;
szh66 3:34a763e93423 41
szh66 3:34a763e93423 42
szh66 3:34a763e93423 43 #endif