diff --git a/keywords.txt b/keywords.txt index 5e58a66..6e32c04 100644 --- a/keywords.txt +++ b/keywords.txt @@ -14,6 +14,7 @@ Stepper KEYWORD1 Stepper step KEYWORD2 setSpeed KEYWORD2 +stop KEYWORD2 version KEYWORD2 ###################################### diff --git a/src/Stepper.cpp b/src/Stepper.cpp index 1f76295..c3d29a2 100644 --- a/src/Stepper.cpp +++ b/src/Stepper.cpp @@ -177,6 +177,14 @@ void Stepper::setSpeed(long whatSpeed) this->step_delay = 60L * 1000L * 1000L / this->number_of_steps / whatSpeed; } +/* + * Sets the speed in revs per minute + */ +void Stepper::stop(void) +{ + this->set_stop = true; +} + /* * Moves the motor steps_to_move steps. If the number is negative, * the motor moves in the reverse direction. @@ -191,7 +199,8 @@ void Stepper::step(int steps_to_move) // decrement the number of steps, moving one step each time: - while (steps_left > 0) + this->set_stop = false; + while (steps_left > 0 && set_stop == false) { unsigned long now = micros(); // move only if the appropriate delay has passed: diff --git a/src/Stepper.h b/src/Stepper.h index 2e68979..c0e3cb9 100644 --- a/src/Stepper.h +++ b/src/Stepper.h @@ -96,6 +96,9 @@ class Stepper { // mover method: void step(int number_of_steps); + //stop rutine + void stop(void); + int version(void); private: