You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					51 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					51 lines
				
				1.3 KiB
			|   
											14 years ago
										 | #!/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 | ||
|  | 
 | ||
|  | print "const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {" | ||
|   
											14 years ago
										 | a = [ timer_freq / ((i*256)+(args.cpu_freq*2)) for i in range(256) ] | ||
|   
											14 years ago
										 | 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 = {" | ||
|   
											14 years ago
										 | a = [ timer_freq / ((i*8)+(args.cpu_freq*2)) for i in range(256) ] | ||
|   
											14 years ago
										 | 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" | ||
|  | 
 |