#include <StepDirectionCounter.h>
#include <StepCounter.h>
#include <InputPin.h>
#include <Timers.h>
#include <inc/hw_gpio.h>
#include "driverlib/interrupt.h"
StepDirectionCounter::StepDirectionCounter(
InputPin* aDirectionPin,
InputPin* aStepPin,
float ascale ) {
directionPin = aDirectionPin;
stepPin = aStepPin;
scale = ascale;
stepPin->enableActiveEdgeInterrupt();
stepPin->stepCounter = this;
};
StepDirectionCounter::~StepDirectionCounter() {
delete directionPin;
delete stepPin; };
void
StepDirectionCounter::pinISR( InputPin* pin ) {
if ( directionPin->readPin() )
stepCount++;
else
stepCount--; };