mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-24 15:14:00 -06:00
stepcompress: Do all step rounding in C code
Commitsf0cefebf
and8f331f08
changed the way the code determined what steps to take on fractional steps. Unfortunately, it was possible in some situations for the C code to round differently from the python code which could result in warnings and lost steps. Change the code so that all fractional step handling is done in the C code. Implementing the step rounding logic in one location avoids any conflicts. In order to efficiently handle the step rounding in the C code, the C code has also been extended to directly send the "set_next_step_dir" command. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
79da35d023
commit
7554c7f694
6 changed files with 154 additions and 131 deletions
|
@ -69,9 +69,9 @@ class PrinterStepper:
|
|||
mcu_time = self.mcu_enable.print_to_mcu_time(move_time)
|
||||
self.mcu_enable.set_digital(mcu_time, enable)
|
||||
self.need_motor_enable = True
|
||||
def prep_move(self, move_time, sdir):
|
||||
def prep_move(self, move_time):
|
||||
mcu_time = self.mcu_stepper.print_to_mcu_time(move_time)
|
||||
self.mcu_stepper.set_next_step_dir(mcu_time, sdir)
|
||||
self.mcu_stepper.check_reset(mcu_time)
|
||||
if self.need_motor_enable:
|
||||
self.motor_enable(move_time, 1)
|
||||
self.need_motor_enable = False
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue