stepcompress: Do all step rounding in C code
Commitsf0cefebfand8f331f08changed 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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user