mirror of https://github.com/Desuuuu/klipper.git
c7d0358c41
The existing clock synchronization code has two flaws: intermittent transmission latency during get_status requests can cause the estimated clock to be too low, and the estimated clock calculation did not take into account possible clock drift between samples. The former could potentially lead to "Timer too close" errors and the latter could potentially lead to "Move queue empty" errors. Rework the code to avoid the above problems. It's not necessary to estimate the micro-controller clock as an excellent estimate is reported by the micro-controller (via the CLOCK_FREQ constant). Account for a small drift from the reported value, and check on each sample if the drift exceeds the expected limits. With a good starting estimated clock, only the offset needs to be calculated. Use previous offsets (and the estimated clock) in calculation of new offsets to avoid intermittent latency from badly skewing the results. Finally, add an additional time offset of one millisecond to account for any minor inaccuracies. Signed-off-by: Kevin O'Connor <kevin@koconnor.net> |
||
---|---|---|
.. | ||
cartesian.py | ||
chelper.py | ||
console.py | ||
corexy.py | ||
delta.py | ||
extruder.py | ||
fan.py | ||
gcode.py | ||
heater.py | ||
homing.py | ||
klippy.py | ||
list.h | ||
mcu.py | ||
msgproto.py | ||
parsedump.py | ||
pins.py | ||
pyhelper.c | ||
pyhelper.h | ||
queuelogger.py | ||
reactor.py | ||
serialhdl.py | ||
serialqueue.c | ||
serialqueue.h | ||
stepcompress.c | ||
stepper.py | ||
toolhead.py | ||
util.py |