debugged pauseMove and resumeMove JJ
Dependents: steppertest GrabTest R5 2016 Robotics Team 1
Fork of R5_StepperDrive by
StepperDrive.h@7:2b1b777d538a, 2016-04-06 (annotated)
- 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?
User | Revision | Line number | New 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 |