Fri, 17 Nov 2017 10:13:31 +0100
proper configuration, homing and planner optimization
0 | 1 | #!/usr/bin/env python |
2 | ||
3 | """ Generate the stepper delay lookup table for Marlin firmware. """ | |
4 | ||
5 | import argparse | |
6 | ||
7 | __author__ = "Ben Gamari <bgamari@gmail.com>" | |
8 | __copyright__ = "Copyright 2012, Ben Gamari" | |
9 | __license__ = "GPL" | |
10 | ||
11 | parser = argparse.ArgumentParser(description=__doc__) | |
12 | parser.add_argument('-f', '--cpu-freq', type=int, default=16, help='CPU clockrate in MHz (default=16)') | |
13 | parser.add_argument('-d', '--divider', type=int, default=8, help='Timer/counter pre-scale divider (default=8)') | |
14 | args = parser.parse_args() | |
15 | ||
16 | cpu_freq = args.cpu_freq * 1000000 | |
17 | timer_freq = cpu_freq / args.divider | |
18 | ||
19 | print "#ifndef SPEED_LOOKUPTABLE_H" | |
20 | print "#define SPEED_LOOKUPTABLE_H" | |
21 | ||
22 | print '#include "Marlin.h"' | |
23 | ||
24 | ||
25 | print "const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {" | |
26 | a = [ timer_freq / ((i*256)+(args.cpu_freq*2)) for i in range(256) ] | |
27 | b = [ a[i] - a[i+1] for i in range(255) ] | |
28 | b.append(b[-1]) | |
29 | for i in range(32): | |
30 | print " ", | |
31 | for j in range(8): | |
32 | print "{%d, %d}," % (a[8*i+j], b[8*i+j]), | |
33 | ||
34 | print "};" | |
35 | ||
36 | ||
37 | print "const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {" | |
38 | a = [ timer_freq / ((i*8)+(args.cpu_freq*2)) for i in range(256) ] | |
39 | b = [ a[i] - a[i+1] for i in range(255) ] | |
40 | b.append(b[-1]) | |
41 | for i in range(32): | |
42 | print " ", | |
43 | for j in range(8): | |
44 | print "{%d, %d}," % (a[8*i+j], b[8*i+j]), | |
45 | ||
46 | print "};" | |
47 | ||
48 | ||
49 | print "#endif" | |
50 |