debugged pauseMove and resumeMove JJ

Dependents:   steppertest GrabTest R5 2016 Robotics Team 1

Fork of R5_StepperDrive by David Vasquez

Committer:
j_j205
Date:
Wed Apr 06 22:06:09 2016 +0000
Revision:
7:2b1b777d538a
Parent:
6:2657751be34b
Child:
8:ceb1201fd3a6
changes to localization;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmar11 0:266a770a17e9 1 #ifndef _STEPPER_DRIVE_
jmar11 0:266a770a17e9 2 #define _STEPPER_DRIVE_
jmar11 0:266a770a17e9 3
jmar11 0:266a770a17e9 4 #include "mbed.h"
jmar11 0:266a770a17e9 5
jmar11 0:266a770a17e9 6 #define Ustep 16 //microstepping setup: 1, 2, 4, 8, or 16
jmar11 0:266a770a17e9 7
jmar11 0:266a770a17e9 8 class StepperDrive{
jmar11 0:266a770a17e9 9 public:
j_j205 1:909572175aad 10 StepperDrive(Serial &pc1, PinName in1, PinName in2, bool in3, PinName in4, PinName in5, bool in6, float in7, float in8, float in9 = 1000);
j_j205 2:80c0b2a5adc0 11 //(serisl &, stepPinLeft, dirPinLeft, invertLeft, stepPinRight, dirPinRight, invertRight, wheelCircum, wheelSepar, periodUs)
jmar11 0:266a770a17e9 12 int move(float distance, float angle);
jmar11 0:266a770a17e9 13 bool isMoveDone();
j_j205 4:754c74beef20 14 void pauseMove();
j_j205 4:754c74beef20 15 void resumeMove();
j_j205 7:2b1b777d538a 16 bool getInvertLeft() { return invertLeft; }
j_j205 7:2b1b777d538a 17 bool getInvertRight() { return invertRight; }
j_j205 7:2b1b777d538a 18 void setInvertLeft(bool _invertLeft) { invertLeft = _invertLeft; }
j_j205 7:2b1b777d538a 19 void setInvertRight(bool _invertRight) { invertRight = _invertRight; }
j_j205 3:97bea13f40a9 20
j_j205 1:909572175aad 21 Serial &pc;
j_j205 1:909572175aad 22 int getRightSteps() { return rightSteps; }
j_j205 1:909572175aad 23 int getLeftSteps() { return leftSteps; }
j_j205 3:97bea13f40a9 24
jmar11 0:266a770a17e9 25 private:
jmar11 0:266a770a17e9 26 Ticker pit; //periodic interrupt timer
j_j205 3:97bea13f40a9 27
jmar11 0:266a770a17e9 28 void pitCallback();
j_j205 3:97bea13f40a9 29
jmar11 0:266a770a17e9 30 void stepRight(bool dir);
jmar11 0:266a770a17e9 31 void stepLeft(bool dir);
j_j205 3:97bea13f40a9 32
jmar11 0:266a770a17e9 33 DigitalOut leftStep;
jmar11 0:266a770a17e9 34 DigitalOut leftDir;
jmar11 0:266a770a17e9 35 DigitalOut rightStep;
jmar11 0:266a770a17e9 36 DigitalOut rightDir;
j_j205 3:97bea13f40a9 37
jmar11 0:266a770a17e9 38 float wheelCircum; //wheel circumference
jmar11 0:266a770a17e9 39 float wheelSepar; //distance between wheels
jmar11 0:266a770a17e9 40 bool invertLeft; //software wheel direction inversion
jmar11 0:266a770a17e9 41 bool invertRight; //software wheel direction inversion
jmar11 0:266a770a17e9 42 bool moveComplete;
j_j205 3:97bea13f40a9 43
jmar11 0:266a770a17e9 44 int leftSteps;
jmar11 0:266a770a17e9 45 int rightSteps;
jmar11 0:266a770a17e9 46 float leftStepsPC;
jmar11 0:266a770a17e9 47 float rightStepsPC;
jmar11 0:266a770a17e9 48 float leftError;
jmar11 0:266a770a17e9 49 float rightError;
j_j205 6:2657751be34b 50
j_j205 6:2657751be34b 51 // variables for holding values during pauseMove()
j_j205 6:2657751be34b 52 int leftStepsPause;
j_j205 6:2657751be34b 53 int rightStepsPause;
j_j205 6:2657751be34b 54 float leftStepsPCPause;
j_j205 6:2657751be34b 55 float rightStepsPCPause;
j_j205 6:2657751be34b 56 float leftErrorPause;
j_j205 6:2657751be34b 57 float rightErrorPause;
j_j205 6:2657751be34b 58 bool invertLeftPause;
j_j205 6:2657751be34b 59 bool invertRightPause;
jmar11 0:266a770a17e9 60 };
jmar11 0:266a770a17e9 61
jmar11 0:266a770a17e9 62 #endif