stepper: Make step pulse duration customizable at run-time

Remove the STEP_DELAY Kconfig option and replace it with a per-stepper
step_pulse_duration printer.cfg config option.

The AVR code will continue to have optimized code to step and "unstep"
in the same function (which is automatically activated when the step
delay is 40 ticks or less).  This change removes the Kconfig option
for single function step/unstep on 32bit processors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor
2021-10-27 19:10:36 -04:00
parent 913d099261
commit 4acfd8d7c8
6 changed files with 69 additions and 96 deletions

View File

@@ -73,31 +73,6 @@ config USB_SERIAL_NUMBER
string "USB serial number" if !USB_SERIAL_NUMBER_CHIPID
endmenu
# Step timing customization
config CUSTOM_STEP_DELAY
bool "Specify a custom step pulse duration"
depends on LOW_LEVEL_OPTIONS
config STEP_DELAY
int
default 2
config STEP_DELAY
int "Step pulse duration (in microseconds)"
depends on CUSTOM_STEP_DELAY
help
Specify the duration of the stepper step pulse time. This
setting applies to all stepper drivers controlled by the
micro-controller. If this value is set to zero (or less) then
the code will "step" and "unstep" in the same C function.
A setting of zero (or less) on 8-bit AVR micro-controllers
results in a minimum step pulse time a little over 2us.
A setting of zero on ARM micro-controllers typically results
in a minimum step pulse time of 20 cpu cycles.
The default for AVR is -1, for all other micro-controllers it
is 2us.
config INITIAL_PINS
string "GPIO pins to set at micro-controller startup"
depends on LOW_LEVEL_OPTIONS