#include <QuadratureCounter1X.h>
#include <StepCounter.h>
#include <InputPin.h>
#include <Timers.h>
#include <inc/hw_gpio.h>
#include "driverlib/interrupt.h"
QuadratureCounter1X::QuadratureCounter1X(
InputPin* aPin1,
InputPin* aPin2,
float ascale ) {
pin1 = aPin1;
pin2 = aPin2;
scale = ascale;
pin1->enableActiveEdgeInterrupt();
pin1->stepCounter = this; };
QuadratureCounter1X::~QuadratureCounter1X() {
#ifdef DebugDelete
Serial.println( " delete QuadratureCounter1X" );
#endif
delete pin1;
delete pin2; };
void
QuadratureCounter1X::pinISR( InputPin* pin ) {
// pin will always be pin1
if ( pin2->readPin() )
adjust( -1 );
// stepCount--;
else
adjust( 1 );
// stepCount++;
};