test

Dependencies:   RemoteIR mbed

encoder.h

Committer:
szh66
Date:
2017-05-07
Revision:
3:34a763e93423
Parent:
2:b78dfa2afe92
Child:
6:9f698d1b2996

File content as of revision 3:34a763e93423:

#ifndef ENCODER_H
#define ENCODER_H
#include "mbed.h"

/*
* Reset both encoders
*/
void resetEncoders();

/*
Returns the average number of pulses across both encoders since last reset. Unit is encoder pulses; intended for straight driving only.
*/
int getEncoderDistance();


class Encoder {
public:
    volatile int pulses;

    Encoder(PinName channelA, PinName channelB);
    
    //Reset the encoder
    void reset(void);

    //Gets pulses by directly querying the encoder.
    operator int() {
        return pulses;
    }
    
private:
    InterruptIn channelA_;
    InterruptIn channelB_;
    int prevState_;
    int currState_;
    
    void encode(void);
};


extern Encoder leftEncoder;


#endif