@@ -622,13 +622,18 @@ class FastAccelStepper {
622
622
// The main purpose is to bypass the ramp generator as mentioned in
623
623
// [#299](https://github.com/gin66/FastAccelStepper/issues/299).
624
624
// This shall allow to run consecutive small moves with fixed speed.
625
- // The parameters are distance (which can be 0) and duration in ticks.
626
- // Distance 0 makes sense in order to keep the time running and not
625
+ // The parameters are steps (which can be 0) and duration in ticks.
626
+ // steps= 0 makes sense in order to keep the time running and not
627
627
// getting out of sync.
628
628
// Due to integer arithmetics the actual duration may be off by a small value.
629
629
// That's why the actual_duration in TICKS is returned.
630
630
// The application should consider this for the next runTimed move.
631
631
//
632
+ // The optional parameter is a boolean called start. This allows for the first
633
+ // invocation to not start the queue yet. This is for managing steppers in parallel.
634
+ // It allows to fill all steppers' queues and then kick it off by a call to
635
+ // `moveTimed(0,0,true)`. Successive invocations can keep true.
636
+ //
632
637
// In order to not have another lightweight ramp generator running in
633
638
// background interrupt, the expecation to the application is, that this
634
639
// function is frequently enough called without the queue being emptied.
@@ -656,7 +661,7 @@ class FastAccelStepper {
656
661
#define MOVE_TIMED_BUSY ((int8_t )5 )
657
662
#define MOVE_TIMED_EMPTY ((int8_t )6 )
658
663
#define MOVE_TIMED_TOO_LARGE_ERROR ((int8_t )-4 )
659
- int8_t moveTimed (int16_t steps, uint32_t duration, uint32_t & actual_duration);
664
+ int8_t moveTimed (int16_t steps, uint32_t duration, uint32_t & actual_duration, bool start = true );
660
665
661
666
// ## Low Level Stepper Queue Management (low level access)
662
667
//
0 commit comments