basic Quadrature Encoder Library
Dependents: ESP8266_pid_mtrPos_webserver_SDcard_v2 ESP8266_pid_mtrSpeed_Webserver_SDcard ESP8266_pid_spd_and_pos_webserver_SDcard pid_encoder_speed_demo ... more
QEI.h
- Committer:
- electromotivated
- Date:
- 2015-11-23
- Revision:
- 0:50aae578cb89
File content as of revision 0:50aae578cb89:
#ifndef QEI_H
#define QEI_H
/*
Basic Quadrature Encoder Interface (QEI) Class.
TODO: Expand to allow setting of quad mode, i.e. count on
rising of A only, rising and falling of A, rising and falling
of both A and B. (Forgot what these modes are called but
can be found in literature online.)
*/
#include "mbed.h"
class QEI{
public:
/*
Constructor for QEI objects
@param encA The mbed pin that encoder input A is on
@param encB The mbed pin that encoder input B is on
*/
QEI(PinName encA, PinName encB);
/*
read() returns total number of counts of the encoder.
Count can be +/- and indicates the overall direction,
(+): CW (-): CCW
@return The toltal number of counts of the encoder.
TODO: Add Conversion Overload for this method
*/
long read();
/*
reset() clears the counter to 0.
*/
void reset();
private:
long count; // Total number of counts since start.
InterruptIn _encA; // Encoder A interrupt pin
DigitalIn _encB; // Encoder B input pin
/*
Increments/Decrements count on interrrupt.
*/
void callback(); // Interrupt callback function
};
#endif