27 lines
566 B
C++
27 lines
566 B
C++
#pragma once
|
|
|
|
class Encoder {
|
|
public:
|
|
Encoder();
|
|
Encoder(unsigned char pin, unsigned char transitionsPerRotation);
|
|
|
|
float GetPulsesPerSecond();
|
|
float GetRevolutionsPerSecond();
|
|
|
|
void ResetDistance();
|
|
float GetRotationDistance();
|
|
|
|
void Update(float timeStep);
|
|
|
|
virtual void StartCountingRevolutions();
|
|
virtual float RestartCountingRevolutions();
|
|
|
|
protected:
|
|
static void InterruptHandler();
|
|
static volatile unsigned char transitionCount;
|
|
unsigned char transitionsPerRotation;
|
|
float rps;
|
|
|
|
float distance; // this is direction agnostic
|
|
};
|