-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathAccelStepper.patch
110 lines (99 loc) · 4.11 KB
/
AccelStepper.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
diff --git a/AccelStepper.cpp b/AccelStepper.cpp
index 1714788..7674368 100644
--- a/AccelStepper.cpp
+++ b/AccelStepper.cpp
@@ -189,7 +189,7 @@ boolean AccelStepper::run()
return _speed != 0.0 || distanceToGo() != 0;
}
-AccelStepper::AccelStepper(uint8_t interface, uint8_t pin1, uint8_t pin2, uint8_t pin3, uint8_t pin4, bool enable)
+void AccelStepper::begin(uint8_t interface, uint8_t pin1, uint8_t pin2, uint8_t pin3, uint8_t pin4, bool enable)
{
_interface = interface;
_currentPos = 0;
diff --git a/AccelStepper.h b/AccelStepper.h
index cc6b6dc..9fdb983 100644
--- a/AccelStepper.h
+++ b/AccelStepper.h
@@ -287,7 +287,8 @@ public:
/// to pin 5.
/// \param[in] enable If this is true (the default), enableOutputs() will be called to enable
/// the output pins at construction time.
- AccelStepper(uint8_t interface = AccelStepper::FULL4WIRE, uint8_t pin1 = 2, uint8_t pin2 = 3, uint8_t pin3 = 4, uint8_t pin4 = 5, bool enable = true);
+ AccelStepper() {};
+ void begin(uint8_t interface = AccelStepper::FULL4WIRE, uint8_t pin1 = 2, uint8_t pin2 = 3, uint8_t pin3 = 4, uint8_t pin4 = 5, bool enable = true);
/// Alternate Constructor which will call your own functions for forward and backward steps.
/// You can have multiple simultaneous steppers, all moving
@@ -437,6 +438,29 @@ public:
protected:
+ /// The current interval between steps in microseconds.
+ /// 0 means the motor is currently stopped with _speed == 0
+ unsigned long _stepInterval;
+
+ /// Current direction motor is spinning in
+ boolean _direction; // 1 == CW
+
+ /// The current absolution position in steps.
+ long _currentPos; // Steps
+
+ /// The target position in steps. The AccelStepper library will move the
+ /// motor from the _currentPos to the _targetPos, taking into account the
+ /// max speed, acceleration and deceleration
+ long _targetPos; // Steps
+
+ /// The current motos speed in steps per second
+ /// Positive is clockwise
+ float _speed; // Steps per second
+
+ /// Arduino pin number assignments for the 2 or 4 pins required to interface to the
+ /// stepper motor or driver
+ uint8_t _pin[4];
+
/// \brief Direction indicator
/// Symbolic names for the direction the motor is turning
typedef enum
@@ -515,31 +539,14 @@ protected:
/// pin3, pin4.
/// \param[in] step The current step phase number (0 to 7)
virtual void step8(long step);
-
private:
/// Number of pins on the stepper motor. Permits 2 or 4. 2 pins is a
/// bipolar, and 4 pins is a unipolar.
uint8_t _interface; // 0, 1, 2, 4, 8, See MotorInterfaceType
- /// Arduino pin number assignments for the 2 or 4 pins required to interface to the
- /// stepper motor or driver
- uint8_t _pin[4];
-
/// Whether the _pins is inverted or not
uint8_t _pinInverted[4];
- /// The current absolution position in steps.
- long _currentPos; // Steps
-
- /// The target position in steps. The AccelStepper library will move the
- /// motor from the _currentPos to the _targetPos, taking into account the
- /// max speed, acceleration and deceleration
- long _targetPos; // Steps
-
- /// The current motos speed in steps per second
- /// Positive is clockwise
- float _speed; // Steps per second
-
/// The maximum permitted speed in steps per second. Must be > 0.
float _maxSpeed;
@@ -548,10 +555,6 @@ private:
float _acceleration;
float _sqrt_twoa; // Precomputed sqrt(2*_acceleration)
- /// The current interval between steps in microseconds.
- /// 0 means the motor is currently stopped with _speed == 0
- unsigned long _stepInterval;
-
/// The last step time in microseconds
unsigned long _lastStepTime;
@@ -588,9 +591,6 @@ private:
/// Min step size in microseconds based on maxSpeed
float _cmin; // at max speed
- /// Current direction motor is spinning in
- boolean _direction; // 1 == CW
-
};
/// @example Random.pde