debugged pauseMove and resumeMove JJ

Dependents:   steppertest GrabTest R5 2016 Robotics Team 1

Fork of R5_StepperDrive by David Vasquez

Committer:
j_j205
Date:
Fri Apr 01 17:20:31 2016 +0000
Revision:
6:2657751be34b
Parent:
4:754c74beef20
Child:
7:2b1b777d538a
debugged pauseMove and resumeMove

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 3:97bea13f40a9 16
j_j205 1:909572175aad 17 Serial &pc;
j_j205 1:909572175aad 18 int getRightSteps() { return rightSteps; }
j_j205 1:909572175aad 19 int getLeftSteps() { return leftSteps; }
j_j205 3:97bea13f40a9 20
jmar11 0:266a770a17e9 21 private:
jmar11 0:266a770a17e9 22 Ticker pit; //periodic interrupt timer
j_j205 3:97bea13f40a9 23
jmar11 0:266a770a17e9 24 void pitCallback();
j_j205 3:97bea13f40a9 25
jmar11 0:266a770a17e9 26 void stepRight(bool dir);
jmar11 0:266a770a17e9 27 void stepLeft(bool dir);
j_j205 3:97bea13f40a9 28
jmar11 0:266a770a17e9 29 DigitalOut leftStep;
jmar11 0:266a770a17e9 30 DigitalOut leftDir;
jmar11 0:266a770a17e9 31 DigitalOut rightStep;
jmar11 0:266a770a17e9 32 DigitalOut rightDir;
j_j205 3:97bea13f40a9 33
jmar11 0:266a770a17e9 34 float wheelCircum; //wheel circumference
jmar11 0:266a770a17e9 35 float wheelSepar; //distance between wheels
jmar11 0:266a770a17e9 36 bool invertLeft; //software wheel direction inversion
jmar11 0:266a770a17e9 37 bool invertRight; //software wheel direction inversion
jmar11 0:266a770a17e9 38 bool moveComplete;
j_j205 3:97bea13f40a9 39
jmar11 0:266a770a17e9 40 int leftSteps;
jmar11 0:266a770a17e9 41 int rightSteps;
jmar11 0:266a770a17e9 42 float leftStepsPC;
jmar11 0:266a770a17e9 43 float rightStepsPC;
jmar11 0:266a770a17e9 44 float leftError;
jmar11 0:266a770a17e9 45 float rightError;
j_j205 6:2657751be34b 46
j_j205 6:2657751be34b 47 // variables for holding values during pauseMove()
j_j205 6:2657751be34b 48 int leftStepsPause;
j_j205 6:2657751be34b 49 int rightStepsPause;
j_j205 6:2657751be34b 50 float leftStepsPCPause;
j_j205 6:2657751be34b 51 float rightStepsPCPause;
j_j205 6:2657751be34b 52 float leftErrorPause;
j_j205 6:2657751be34b 53 float rightErrorPause;
j_j205 6:2657751be34b 54 bool invertLeftPause;
j_j205 6:2657751be34b 55 bool invertRightPause;
jmar11 0:266a770a17e9 56 };
jmar11 0:266a770a17e9 57
jmar11 0:266a770a17e9 58 #endif