aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/mcu.py
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/mcu.py')
-rw-r--r--klippy/mcu.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/klippy/mcu.py b/klippy/mcu.py
index c4d1d7d3..d3629fc4 100644
--- a/klippy/mcu.py
+++ b/klippy/mcu.py
@@ -97,15 +97,18 @@ class MCU_endstop:
, self._oid)
self._query_cmd = mcu.lookup_command("end_stop_query oid=%c")
self._homing = False
- self._min_query_time = self._last_query_time = 0.
- self._last_state = {}
+ self._min_query_time = 0.
+ self._next_query_clock = 0
self._mcu_freq = mcu.get_mcu_freq()
+ self._retry_query_ticks = int(self._mcu_freq * self.RETRY_QUERY)
+ self._last_state = {}
self.print_to_mcu_time = mcu.print_to_mcu_time
def home(self, mcu_time, rest_time):
clock = int(mcu_time * self._mcu_freq)
rest_ticks = int(rest_time * self._mcu_freq)
self._homing = True
- self._min_query_time = self._last_query_time = time.time()
+ self._min_query_time = time.time()
+ self._next_query_clock = clock + self._retry_query_ticks
msg = self._home_cmd.encode(
self._oid, clock, rest_ticks, 1 ^ self._invert)
self._mcu.send(msg, reqclock=clock, cq=self._cmd_queue)
@@ -124,8 +127,9 @@ class MCU_endstop:
if self._last_state.get('#sent_time', -1.) >= self._min_query_time:
if not self._homing or not self._last_state.get('homing', 0):
return False
- if self._last_query_time + self.RETRY_QUERY <= eventtime:
- self._last_query_time = eventtime
+ last_clock = self._mcu.get_last_clock()
+ if last_clock >= self._next_query_clock:
+ self._next_query_clock = last_clock + self._retry_query_ticks
msg = self._query_cmd.encode(self._oid)
self._mcu.send(msg, cq=self._cmd_queue)
return True
@@ -137,7 +141,7 @@ class MCU_endstop:
def query_endstop(self):
self._homing = False
self._min_query_time = time.time()
- self._last_query_time = 0.
+ self._next_query_clock = 0
def get_last_triggered(self):
return self._last_state.get('pin', self._invert) ^ self._invert