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