#ifndef QuadratureFeedback_h
#define QuadratureFeedback_h
#include "Energia.h"
#include <Axis.h>
class DRV8305Axis;
class BLDC3;
class StepCounter;
class Machine;
class QuadratureFeedback {
DRV8305Axis* drv8305axis;
BLDC3* bldc3;
public:
QuadratureFeedback(
char* data,
String* msgPtr,
DRV8305Axis* drv8305axis,
char counterType );
~QuadratureFeedback();
StepCounter* stepCounter;
uint32_t ppr; // pulses per revolution per phase
uint32_t adaptAngle;
uint32_t stallDetectVoltage; // 100% = 4096
float voltageProportion;
float voltageIntegral;
float voltageDerivative;
float priorError;
float integralError;
bool synchronized;
float fractionalCount;
bool leading;
int32_t stepAdjustment;
bool
valid();
bool // called on interpolation interrupt
calculateFeedback(
Machine* machine );
};
#endif