debugged pauseMove and resumeMove JJ
Dependents: steppertest GrabTest R5 2016 Robotics Team 1
Fork of R5_StepperDrive by
StepperDrive.h@6:2657751be34b, 2016-04-01 (annotated)
- 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?
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 | 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 |