diff options
Diffstat (limited to 'buildroot/share/scripts/createSpeedLookupTable.py')
-rw-r--r-- | buildroot/share/scripts/createSpeedLookupTable.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/buildroot/share/scripts/createSpeedLookupTable.py b/buildroot/share/scripts/createSpeedLookupTable.py new file mode 100644 index 0000000..da24c7c --- /dev/null +++ b/buildroot/share/scripts/createSpeedLookupTable.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python + +from __future__ import print_function +from __future__ import division + +""" Generate the stepper delay lookup table for Marlin firmware. """ + +import argparse + +__author__ = "Ben Gamari <bgamari@gmail.com>" +__copyright__ = "Copyright 2012, Ben Gamari" +__license__ = "GPL" + +parser = argparse.ArgumentParser(description=__doc__) +parser.add_argument('-f', '--cpu-freq', type=int, default=16, help='CPU clockrate in MHz (default=16)') +parser.add_argument('-d', '--divider', type=int, default=8, help='Timer/counter pre-scale divider (default=8)') +args = parser.parse_args() + +cpu_freq = args.cpu_freq * 1000000 +timer_freq = cpu_freq / args.divider + +print("#ifndef SPEED_LOOKUPTABLE_H") +print("#define SPEED_LOOKUPTABLE_H") +print() +print('#include "MarlinCore.h"') +print() + +print("const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {") +a = [ timer_freq / ((i*256)+(args.cpu_freq*2)) for i in range(256) ] +b = [ a[i] - a[i+1] for i in range(255) ] +b.append(b[-1]) +for i in range(32): + print(" ", end=' ') + for j in range(8): + print("{%d, %d}," % (a[8*i+j], b[8*i+j]), end=' ') + print() +print("};") +print() + +print("const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {") +a = [ timer_freq / ((i*8)+(args.cpu_freq*2)) for i in range(256) ] +b = [ a[i] - a[i+1] for i in range(255) ] +b.append(b[-1]) +for i in range(32): + print(" ", end=' ') + for j in range(8): + print("{%d, %d}," % (a[8*i+j], b[8*i+j]), end=' ') + print() +print("};") +print() + +print("#endif") + |