Add create_speed_lookup
This commit is contained in:
parent
ce07c9186d
commit
6d7e6a11fc
1 changed files with 53 additions and 0 deletions
53
Marlin/create_speed_lookuptable.py
Executable file
53
Marlin/create_speed_lookuptable.py
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
""" 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 "Marlin.h"'
|
||||||
|
print
|
||||||
|
|
||||||
|
# Based on timer calculations of 'RepRap cartesian firmware' by Zack
|
||||||
|
# Smith and Philip Tiefenbacher.
|
||||||
|
|
||||||
|
print "const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {"
|
||||||
|
a = [ timer_freq / ((i*256)+32) 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 " ",
|
||||||
|
for j in range(8):
|
||||||
|
print "{%d, %d}," % (a[8*i+j], b[8*i+j]),
|
||||||
|
print
|
||||||
|
print "};"
|
||||||
|
print
|
||||||
|
|
||||||
|
print "const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {"
|
||||||
|
a = [ timer_freq / ((i*8)+32) 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 " ",
|
||||||
|
for j in range(8):
|
||||||
|
print "{%d, %d}," % (a[8*i+j], b[8*i+j]),
|
||||||
|
print
|
||||||
|
print "};"
|
||||||
|
print
|
||||||
|
|
||||||
|
print "#endif"
|
||||||
|
|
Reference in a new issue