mirror of
https://github.com/arduino/Arduino.git
synced 2025-01-29 18:52:13 +01:00
Stepper: optimization on timing calculations
micros() is now called only once per cycle (instead of 3). The rollover check is superflous because the "last_step_time" field is unsigned.
This commit is contained in:
parent
0546bf04e0
commit
1064554b87
@ -195,10 +195,11 @@ void Stepper::step(int steps_to_move)
|
||||
|
||||
// decrement the number of steps, moving one step each time:
|
||||
while(steps_left > 0) {
|
||||
unsigned long now = micros();
|
||||
// move only if the appropriate delay has passed:
|
||||
if (micros() - this->last_step_time >= this->step_delay || micros() < this->last_step_time) {
|
||||
if (now - this->last_step_time >= this->step_delay) {
|
||||
// get the timeStamp of when you stepped:
|
||||
this->last_step_time = micros();
|
||||
this->last_step_time = now;
|
||||
// increment or decrement the step number,
|
||||
// depending on direction:
|
||||
if (this->direction == 1) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user