Library for the VNH5019 Motor Driver, with a helper class for the Pololu Dual VNH5019 Dual Motor Driver Shield http://www.pololu.com/product/2502

Dependents:   VNH5019_second VNH5019_second1

VNH5019Accel.cpp

Committer:
ianmcc
Date:
2014-08-07
Revision:
5:b5f360a16354

File content as of revision 5:b5f360a16354:

#include "VNH5019Accel.h"

void VNH5019Accel::Interrupt()
{
    float MyRequestedSpeed = RequestedSpeed;
    if (CurrentSpeed != MyRequestedSpeed)
    {
        if (std::abs(CurrentSpeed-MyRequestedSpeed) < VNH5019ChangePerTick)
            CurrentSpeed = MyRequestedSpeed;
        else if (MyRequestedSpeed > CurrentSpeed)
            CurrentSpeed += VNH5019ChangePerTick;
        else
            CurrentSpeed -= VNH5019ChangePerTick;
        Driver.speed(CurrentSpeed);
    }
    else
    {
        float MyRequestedBrake = RequestedBrake;
        if (CurrentBrake != MyRequestedBrake)
        {
            if (std::abs(CurrentBrake-MyRequestedBrake) < VNH5019BrakeChangePerTick)
                CurrentBrake = MyRequestedBrake;
            else if (MyRequestedBrake > CurrentBrake)
                CurrentBrake += VNH5019BrakeChangePerTick;
          else
                CurrentBrake -= VNH5019BrakeChangePerTick;
            Driver.brake(CurrentBrake);
        }
    }
}

DualVNH5019AccelMotorShield::DualVNH5019AccelMotorShield()
: m1(PTD4, PTA4, PTC8, PTB0, PTD5),
  m2(PTC9, PTA13, PTD3, PTB1, PTD0)
{
}