aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/pins.py
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/pins.py')
-rw-r--r--klippy/pins.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/klippy/pins.py b/klippy/pins.py
index 597e59b3..a4262a4e 100644
--- a/klippy/pins.py
+++ b/klippy/pins.py
@@ -100,9 +100,12 @@ def get_pin_map(mcu, mapping_name=None):
pins['analog%d' % (i,)] = pins[apins[i]]
return pins
-# Translate pin names in a firmware command
+# Translate pin names and tick times in a firmware command
re_pin = re.compile(r'(?P<prefix>[ _]pin=)(?P<name>[^ ]*)')
-def update_command(cmd, pmap):
- def fixup(m):
+re_ticks = re.compile(r'TICKS\((?P<ticks>[^)]*)\)')
+def update_command(cmd, mcu_freq, pmap):
+ def pin_fixup(m):
return m.group('prefix') + str(pmap[m.group('name')])
- return re_pin.sub(fixup, cmd)
+ def ticks_fixup(m):
+ return str(int(mcu_freq * float(m.group('ticks'))))
+ return re_ticks.sub(ticks_fixup, re_pin.sub(pin_fixup, cmd))