Subversion Repositories MK-Marlin

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ron 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
print
22
print '#include "Marlin.h"'
23
print
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
    print
34
print "};"
35
print
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
    print
46
print "};"
47
print
48
 
49
print "#endif"
50