Skip to content

Commit 27cca14

Browse files
committed
When moving fast, do not waste CPU cycles applying an offset to improve the minimal speed case
1 parent c1ced60 commit 27cca14

File tree

3 files changed

+98
-98
lines changed

3 files changed

+98
-98
lines changed

Marlin/src/module/stepper.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2056,14 +2056,14 @@ uint32_t Stepper::calc_timer_interval(uint32_t step_rate) {
20562056
return uint16_t(pgm_read_word(table_address));
20572057
}
20582058
else {
2059-
step_rate -= min_step_rate; // Correct for minimal speed
20602059
if (step_rate >= 0x0800) { // higher step rate
20612060
const uint8_t rate_mod_256 = (step_rate & 0x00FF);
20622061
const uintptr_t table_address = uintptr_t(&speed_lookuptable_fast[uint8_t(step_rate >> 8)][0]),
20632062
gain = uint16_t(pgm_read_word(table_address + 2));
20642063
return uint16_t(pgm_read_word(table_address)) - MultiU8X16toH16(rate_mod_256, gain);
20652064
}
20662065
else { // lower step rates
2066+
step_rate -= min_step_rate; // Correct for minimal speed
20672067
uintptr_t table_address = uintptr_t(&speed_lookuptable_slow[0][0]);
20682068
table_address += (step_rate >> 1) & 0xFFFC;
20692069
return uint16_t(pgm_read_word(table_address))

Marlin/src/module/stepper.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
#define TIMER_READ_ADD_AND_STORE_CYCLES 13UL
115115

116116
// The base ISR
117-
#define ISR_BASE_CYCLES 996UL
117+
#define ISR_BASE_CYCLES 990UL
118118

119119
// Linear advance base time is 32 cycles
120120
#if ENABLED(LIN_ADVANCE)

Marlin/src/module/stepper/speed_lookuptable.h

+96-96
Original file line numberDiff line numberDiff line change
@@ -24,110 +24,110 @@
2424
#if F_CPU == 16000000
2525

2626
const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {
27-
{ 62500, 55556}, { 6944, 3268}, { 3676, 1176}, { 2500, 607}, { 1893, 369}, { 1524, 249}, { 1275, 179}, { 1096, 135},
28-
{ 961, 105}, { 856, 85}, { 771, 69}, { 702, 58}, { 644, 49}, { 595, 42}, { 553, 37}, { 516, 32},
29-
{ 484, 28}, { 456, 25}, { 431, 23}, { 408, 20}, { 388, 19}, { 369, 16}, { 353, 16}, { 337, 14},
30-
{ 323, 13}, { 310, 11}, { 299, 11}, { 288, 11}, { 277, 9}, { 268, 9}, { 259, 8}, { 251, 8},
31-
{ 243, 8}, { 235, 7}, { 228, 6}, { 222, 6}, { 216, 6}, { 210, 6}, { 204, 5}, { 199, 5},
32-
{ 194, 5}, { 189, 4}, { 185, 4}, { 181, 4}, { 177, 4}, { 173, 4}, { 169, 4}, { 165, 3},
33-
{ 162, 3}, { 159, 4}, { 155, 3}, { 152, 3}, { 149, 2}, { 147, 3}, { 144, 3}, { 141, 2},
34-
{ 139, 3}, { 136, 2}, { 134, 2}, { 132, 3}, { 129, 2}, { 127, 2}, { 125, 2}, { 123, 2},
35-
{ 121, 2}, { 119, 1}, { 118, 2}, { 116, 2}, { 114, 1}, { 113, 2}, { 111, 2}, { 109, 1},
36-
{ 108, 2}, { 106, 1}, { 105, 2}, { 103, 1}, { 102, 1}, { 101, 1}, { 100, 2}, { 98, 1},
37-
{ 97, 1}, { 96, 1}, { 95, 2}, { 93, 1}, { 92, 1}, { 91, 1}, { 90, 1}, { 89, 1},
38-
{ 88, 1}, { 87, 1}, { 86, 1}, { 85, 1}, { 84, 1}, { 83, 0}, { 83, 1}, { 82, 1},
39-
{ 81, 1}, { 80, 1}, { 79, 1}, { 78, 0}, { 78, 1}, { 77, 1}, { 76, 1}, { 75, 0},
40-
{ 75, 1}, { 74, 1}, { 73, 1}, { 72, 0}, { 72, 1}, { 71, 1}, { 70, 0}, { 70, 1},
41-
{ 69, 0}, { 69, 1}, { 68, 1}, { 67, 0}, { 67, 1}, { 66, 0}, { 66, 1}, { 65, 0},
42-
{ 65, 1}, { 64, 1}, { 63, 0}, { 63, 1}, { 62, 0}, { 62, 1}, { 61, 0}, { 61, 1},
43-
{ 60, 0}, { 60, 0}, { 60, 1}, { 59, 0}, { 59, 1}, { 58, 0}, { 58, 1}, { 57, 0},
44-
{ 57, 1}, { 56, 0}, { 56, 0}, { 56, 1}, { 55, 0}, { 55, 1}, { 54, 0}, { 54, 0},
45-
{ 54, 1}, { 53, 0}, { 53, 0}, { 53, 1}, { 52, 0}, { 52, 0}, { 52, 1}, { 51, 0},
46-
{ 51, 0}, { 51, 1}, { 50, 0}, { 50, 0}, { 50, 1}, { 49, 0}, { 49, 0}, { 49, 1},
47-
{ 48, 0}, { 48, 0}, { 48, 1}, { 47, 0}, { 47, 0}, { 47, 0}, { 47, 1}, { 46, 0},
48-
{ 46, 0}, { 46, 1}, { 45, 0}, { 45, 0}, { 45, 0}, { 45, 1}, { 44, 0}, { 44, 0},
49-
{ 44, 0}, { 44, 1}, { 43, 0}, { 43, 0}, { 43, 0}, { 43, 1}, { 42, 0}, { 42, 0},
50-
{ 42, 0}, { 42, 1}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 1}, { 40, 0},
51-
{ 40, 0}, { 40, 0}, { 40, 0}, { 40, 1}, { 39, 0}, { 39, 0}, { 39, 0}, { 39, 0},
52-
{ 39, 1}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 1}, { 37, 0}, { 37, 0},
53-
{ 37, 0}, { 37, 0}, { 37, 0}, { 37, 1}, { 36, 0}, { 36, 0}, { 36, 0}, { 36, 0},
54-
{ 36, 1}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 1},
55-
{ 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 1}, { 33, 0}, { 33, 0},
56-
{ 33, 0}, { 33, 0}, { 33, 0}, { 33, 0}, { 33, 1}, { 32, 0}, { 32, 0}, { 32, 0},
57-
{ 32, 0}, { 32, 0}, { 32, 0}, { 32, 0}, { 32, 1}, { 31, 0}, { 31, 0}, { 31, 0},
58-
{ 31, 0}, { 31, 0}, { 31, 0}, { 31, 1}, { 30, 0}, { 30, 0}, { 30, 0}, { 30, 0}
27+
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, // dummy first row
28+
{977, 109}, {868, 87}, {781, 71}, {710, 59}, {651, 50}, {601, 43}, {558, 37}, {521, 33},
29+
{488, 28}, {460, 26}, {434, 23}, {411, 20}, {391, 19}, {372, 17}, {355, 15}, {340, 14},
30+
{326, 13}, {313, 13}, {300, 11}, {289, 10}, {279, 10}, {269, 9}, {260, 8}, {252, 8},
31+
{244, 7}, {237, 7}, {230, 7}, {223, 6}, {217, 6}, {211, 5}, {206, 6}, {200, 5},
32+
{195, 4}, {191, 5}, {186, 4}, {182, 4}, {178, 4}, {174, 4}, {170, 4}, {166, 3},
33+
{163, 4}, {159, 3}, {156, 3}, {153, 3}, {150, 3}, {147, 2}, {145, 3}, {142, 2},
34+
{140, 3}, {137, 2}, {135, 3}, {132, 2}, {130, 2}, {128, 2}, {126, 2}, {124, 2},
35+
{122, 2}, {120, 2}, {118, 1}, {117, 2}, {115, 2}, {113, 1}, {112, 2}, {110, 1},
36+
{109, 2}, {107, 1}, {106, 2}, {104, 1}, {103, 2}, {101, 1}, {100, 1}, {99, 1},
37+
{98, 2}, {96, 1}, {95, 1}, {94, 1}, {93, 1}, {92, 1}, {91, 1}, {90, 1},
38+
{89, 1}, {88, 1}, {87, 1}, {86, 1}, {85, 1}, {84, 1}, {83, 1}, {82, 1},
39+
{81, 0}, {81, 1}, {80, 1}, {79, 1}, {78, 1}, {77, 0}, {77, 1}, {76, 1},
40+
{75, 1}, {74, 0}, {74, 1}, {73, 1}, {72, 0}, {72, 1}, {71, 1}, {70, 0},
41+
{70, 1}, {69, 0}, {69, 1}, {68, 1}, {67, 0}, {67, 1}, {66, 0}, {66, 1},
42+
{65, 0}, {65, 1}, {64, 0}, {64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 1},
43+
{61, 0}, {61, 1}, {60, 0}, {60, 1}, {59, 0}, {59, 1}, {58, 0}, {58, 1},
44+
{57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 1}, {55, 0}, {55, 0}, {55, 1},
45+
{54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 1}, {52, 0}, {52, 0}, {52, 1},
46+
{51, 0}, {51, 0}, {51, 1}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0},
47+
{49, 0}, {49, 1}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0},
48+
{47, 1}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0}, {45, 1},
49+
{44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0}, {43, 0}, {43, 1},
50+
{42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 1}, {41, 0}, {41, 0}, {41, 0},
51+
{41, 1}, {40, 0}, {40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0},
52+
{39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0},
53+
{38, 1}, {37, 0}, {37, 0}, {37, 0}, {37, 0}, {37, 0}, {37, 1}, {36, 0},
54+
{36, 0}, {36, 0}, {36, 0}, {36, 0}, {36, 1}, {35, 0}, {35, 0}, {35, 0},
55+
{35, 0}, {35, 0}, {35, 1}, {34, 0}, {34, 0}, {34, 0}, {34, 0}, {34, 0},
56+
{34, 0}, {34, 1}, {33, 0}, {33, 0}, {33, 0}, {33, 0}, {33, 0}, {33, 0},
57+
{33, 1}, {32, 0}, {32, 0}, {32, 0}, {32, 0}, {32, 0}, {32, 0}, {32, 0},
58+
{32, 1}, {31, 0}, {31, 0}, {31, 0}, {31, 0}, {31, 0}, {31, 0}, {31, 0},
5959
};
6060

6161
const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {
62-
{ 62500, 12500}, { 50000, 8334}, { 41666, 5952}, { 35714, 4464}, { 31250, 3473}, { 27777, 2777}, { 25000, 2273}, { 22727, 1894},
63-
{ 20833, 1603}, { 19230, 1373}, { 17857, 1191}, { 16666, 1041}, { 15625, 920}, { 14705, 817}, { 13888, 731}, { 13157, 657},
64-
{ 12500, 596}, { 11904, 541}, { 11363, 494}, { 10869, 453}, { 10416, 416}, { 10000, 385}, { 9615, 356}, { 9259, 331},
65-
{ 8928, 308}, { 8620, 287}, { 8333, 269}, { 8064, 252}, { 7812, 237}, { 7575, 223}, { 7352, 210}, { 7142, 198},
66-
{ 6944, 188}, { 6756, 178}, { 6578, 168}, { 6410, 160}, { 6250, 153}, { 6097, 145}, { 5952, 139}, { 5813, 132},
67-
{ 5681, 126}, { 5555, 121}, { 5434, 115}, { 5319, 111}, { 5208, 106}, { 5102, 102}, { 5000, 99}, { 4901, 94},
68-
{ 4807, 91}, { 4716, 87}, { 4629, 84}, { 4545, 81}, { 4464, 79}, { 4385, 75}, { 4310, 73}, { 4237, 71},
69-
{ 4166, 68}, { 4098, 66}, { 4032, 64}, { 3968, 62}, { 3906, 60}, { 3846, 59}, { 3787, 56}, { 3731, 55},
70-
{ 3676, 53}, { 3623, 52}, { 3571, 50}, { 3521, 49}, { 3472, 48}, { 3424, 46}, { 3378, 45}, { 3333, 44},
71-
{ 3289, 43}, { 3246, 41}, { 3205, 41}, { 3164, 39}, { 3125, 39}, { 3086, 38}, { 3048, 36}, { 3012, 36},
72-
{ 2976, 35}, { 2941, 35}, { 2906, 33}, { 2873, 33}, { 2840, 32}, { 2808, 31}, { 2777, 30}, { 2747, 30},
73-
{ 2717, 29}, { 2688, 29}, { 2659, 28}, { 2631, 27}, { 2604, 27}, { 2577, 26}, { 2551, 26}, { 2525, 25},
74-
{ 2500, 25}, { 2475, 25}, { 2450, 23}, { 2427, 24}, { 2403, 23}, { 2380, 22}, { 2358, 22}, { 2336, 22},
75-
{ 2314, 21}, { 2293, 21}, { 2272, 20}, { 2252, 20}, { 2232, 20}, { 2212, 20}, { 2192, 19}, { 2173, 18},
76-
{ 2155, 19}, { 2136, 18}, { 2118, 18}, { 2100, 17}, { 2083, 17}, { 2066, 17}, { 2049, 17}, { 2032, 16},
77-
{ 2016, 16}, { 2000, 16}, { 1984, 16}, { 1968, 15}, { 1953, 16}, { 1937, 14}, { 1923, 15}, { 1908, 15},
78-
{ 1893, 14}, { 1879, 14}, { 1865, 14}, { 1851, 13}, { 1838, 14}, { 1824, 13}, { 1811, 13}, { 1798, 13},
79-
{ 1785, 12}, { 1773, 13}, { 1760, 12}, { 1748, 12}, { 1736, 12}, { 1724, 12}, { 1712, 12}, { 1700, 11},
80-
{ 1689, 12}, { 1677, 11}, { 1666, 11}, { 1655, 11}, { 1644, 11}, { 1633, 10}, { 1623, 11}, { 1612, 10},
81-
{ 1602, 10}, { 1592, 10}, { 1582, 10}, { 1572, 10}, { 1562, 10}, { 1552, 9}, { 1543, 10}, { 1533, 9},
82-
{ 1524, 9}, { 1515, 9}, { 1506, 9}, { 1497, 9}, { 1488, 9}, { 1479, 9}, { 1470, 9}, { 1461, 8},
83-
{ 1453, 8}, { 1445, 9}, { 1436, 8}, { 1428, 8}, { 1420, 8}, { 1412, 8}, { 1404, 8}, { 1396, 8},
84-
{ 1388, 7}, { 1381, 8}, { 1373, 7}, { 1366, 8}, { 1358, 7}, { 1351, 7}, { 1344, 8}, { 1336, 7},
85-
{ 1329, 7}, { 1322, 7}, { 1315, 7}, { 1308, 6}, { 1302, 7}, { 1295, 7}, { 1288, 6}, { 1282, 7},
86-
{ 1275, 6}, { 1269, 7}, { 1262, 6}, { 1256, 6}, { 1250, 7}, { 1243, 6}, { 1237, 6}, { 1231, 6},
87-
{ 1225, 6}, { 1219, 6}, { 1213, 6}, { 1207, 6}, { 1201, 5}, { 1196, 6}, { 1190, 6}, { 1184, 5},
88-
{ 1179, 6}, { 1173, 5}, { 1168, 6}, { 1162, 5}, { 1157, 5}, { 1152, 6}, { 1146, 5}, { 1141, 5},
89-
{ 1136, 5}, { 1131, 5}, { 1126, 5}, { 1121, 5}, { 1116, 5}, { 1111, 5}, { 1106, 5}, { 1101, 5},
90-
{ 1096, 5}, { 1091, 5}, { 1086, 4}, { 1082, 5}, { 1077, 5}, { 1072, 4}, { 1068, 5}, { 1063, 4},
91-
{ 1059, 5}, { 1054, 4}, { 1050, 4}, { 1046, 5}, { 1041, 4}, { 1037, 4}, { 1033, 5}, { 1028, 4},
92-
{ 1024, 4}, { 1020, 4}, { 1016, 4}, { 1012, 4}, { 1008, 4}, { 1004, 4}, { 1000, 4}, { 996, 4},
93-
{ 992, 4}, { 988, 4}, { 984, 4}, { 980, 4}, { 976, 4}, { 972, 4}, { 968, 3}, { 965, 3}
62+
{62500, 12500}, {50000, 8334}, {41666, 5952}, {35714, 4464}, {31250, 3473}, {27777, 2777}, {25000, 2273}, {22727, 1894},
63+
{20833, 1603}, {19230, 1373}, {17857, 1191}, {16666, 1041}, {15625, 920}, {14705, 817}, {13888, 731}, {13157, 657},
64+
{12500, 596}, {11904, 541}, {11363, 494}, {10869, 453}, {10416, 416}, {10000, 385}, {9615, 356}, {9259, 331},
65+
{8928, 308}, {8620, 287}, {8333, 269}, {8064, 252}, {7812, 237}, {7575, 223}, {7352, 210}, {7142, 198},
66+
{6944, 188}, {6756, 178}, {6578, 168}, {6410, 160}, {6250, 153}, {6097, 145}, {5952, 139}, {5813, 132},
67+
{5681, 126}, {5555, 121}, {5434, 115}, {5319, 111}, {5208, 106}, {5102, 102}, {5000, 99}, {4901, 94},
68+
{4807, 91}, {4716, 87}, {4629, 84}, {4545, 81}, {4464, 79}, {4385, 75}, {4310, 73}, {4237, 71},
69+
{4166, 68}, {4098, 66}, {4032, 64}, {3968, 62}, {3906, 60}, {3846, 59}, {3787, 56}, {3731, 55},
70+
{3676, 53}, {3623, 52}, {3571, 50}, {3521, 49}, {3472, 48}, {3424, 46}, {3378, 45}, {3333, 44},
71+
{3289, 43}, {3246, 41}, {3205, 41}, {3164, 39}, {3125, 39}, {3086, 38}, {3048, 36}, {3012, 36},
72+
{2976, 35}, {2941, 35}, {2906, 33}, {2873, 33}, {2840, 32}, {2808, 31}, {2777, 30}, {2747, 30},
73+
{2717, 29}, {2688, 29}, {2659, 28}, {2631, 27}, {2604, 27}, {2577, 26}, {2551, 26}, {2525, 25},
74+
{2500, 25}, {2475, 25}, {2450, 23}, {2427, 24}, {2403, 23}, {2380, 22}, {2358, 22}, {2336, 22},
75+
{2314, 21}, {2293, 21}, {2272, 20}, {2252, 20}, {2232, 20}, {2212, 20}, {2192, 19}, {2173, 18},
76+
{2155, 19}, {2136, 18}, {2118, 18}, {2100, 17}, {2083, 17}, {2066, 17}, {2049, 17}, {2032, 16},
77+
{2016, 16}, {2000, 16}, {1984, 16}, {1968, 15}, {1953, 16}, {1937, 14}, {1923, 15}, {1908, 15},
78+
{1893, 14}, {1879, 14}, {1865, 14}, {1851, 13}, {1838, 14}, {1824, 13}, {1811, 13}, {1798, 13},
79+
{1785, 12}, {1773, 13}, {1760, 12}, {1748, 12}, {1736, 12}, {1724, 12}, {1712, 12}, {1700, 11},
80+
{1689, 12}, {1677, 11}, {1666, 11}, {1655, 11}, {1644, 11}, {1633, 10}, {1623, 11}, {1612, 10},
81+
{1602, 10}, {1592, 10}, {1582, 10}, {1572, 10}, {1562, 10}, {1552, 9}, {1543, 10}, {1533, 9},
82+
{1524, 9}, {1515, 9}, {1506, 9}, {1497, 9}, {1488, 9}, {1479, 9}, {1470, 9}, {1461, 8},
83+
{1453, 8}, {1445, 9}, {1436, 8}, {1428, 8}, {1420, 8}, {1412, 8}, {1404, 8}, {1396, 8},
84+
{1388, 7}, {1381, 8}, {1373, 7}, {1366, 8}, {1358, 7}, {1351, 7}, {1344, 8}, {1336, 7},
85+
{1329, 7}, {1322, 7}, {1315, 7}, {1308, 6}, {1302, 7}, {1295, 7}, {1288, 6}, {1282, 7},
86+
{1275, 6}, {1269, 7}, {1262, 6}, {1256, 6}, {1250, 7}, {1243, 6}, {1237, 6}, {1231, 6},
87+
{1225, 6}, {1219, 6}, {1213, 6}, {1207, 6}, {1201, 5}, {1196, 6}, {1190, 6}, {1184, 5},
88+
{1179, 6}, {1173, 5}, {1168, 6}, {1162, 5}, {1157, 5}, {1152, 6}, {1146, 5}, {1141, 5},
89+
{1136, 5}, {1131, 5}, {1126, 5}, {1121, 5}, {1116, 5}, {1111, 5}, {1106, 5}, {1101, 5},
90+
{1096, 5}, {1091, 5}, {1086, 4}, {1082, 5}, {1077, 5}, {1072, 4}, {1068, 5}, {1063, 4},
91+
{1059, 5}, {1054, 4}, {1050, 4}, {1046, 5}, {1041, 4}, {1037, 4}, {1033, 5}, {1028, 4},
92+
{1024, 4}, {1020, 4}, {1016, 4}, {1012, 4}, {1008, 4}, {1004, 4}, {1000, 4}, {996, 4},
93+
{992, 4}, {988, 4}, {984, 4}, {980, 4}, {976, 4}, {972, 4}, {968, 3}, {965, 3},
9494
};
9595

9696
#elif F_CPU == 20000000
9797

9898
const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {
99-
{62500, 54055}, {8445, 3917}, {4528, 1434}, {3094, 745}, {2349, 456}, {1893, 307}, {1586, 222}, {1364, 167},
100-
{1197, 131}, {1066, 105}, {961, 86}, {875, 72}, {803, 61}, {742, 53}, {689, 45}, {644, 40},
101-
{604, 35}, {569, 32}, {537, 28}, {509, 25}, {484, 23}, {461, 21}, {440, 19}, {421, 17},
102-
{404, 16}, {388, 15}, {373, 14}, {359, 13}, {346, 12}, {334, 11}, {323, 10}, {313, 10},
103-
{303, 9}, {294, 9}, {285, 8}, {277, 7}, {270, 8}, {262, 7}, {255, 6}, {249, 6},
104-
{243, 6}, {237, 6}, {231, 5}, {226, 5}, {221, 5}, {216, 5}, {211, 4}, {207, 5},
105-
{202, 4}, {198, 4}, {194, 4}, {190, 3}, {187, 4}, {183, 3}, {180, 3}, {177, 4},
106-
{173, 3}, {170, 3}, {167, 2}, {165, 3}, {162, 3}, {159, 2}, {157, 3}, {154, 2},
107-
{152, 3}, {149, 2}, {147, 2}, {145, 2}, {143, 2}, {141, 2}, {139, 2}, {137, 2},
108-
{135, 2}, {133, 2}, {131, 2}, {129, 1}, {128, 2}, {126, 2}, {124, 1}, {123, 2},
109-
{121, 1}, {120, 2}, {118, 1}, {117, 1}, {116, 2}, {114, 1}, {113, 1}, {112, 2},
110-
{110, 1}, {109, 1}, {108, 1}, {107, 2}, {105, 1}, {104, 1}, {103, 1}, {102, 1},
111-
{101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1}, {94, 1},
112-
{93, 1}, {92, 1}, {91, 0}, {91, 1}, {90, 1}, {89, 1}, {88, 1}, {87, 0},
113-
{87, 1}, {86, 1}, {85, 1}, {84, 0}, {84, 1}, {83, 1}, {82, 1}, {81, 0},
114-
{81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1}, {76, 0},
115-
{76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0}, {72, 1},
116-
{71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0}, {68, 1},
117-
{67, 0}, {67, 1}, {66, 0}, {66, 1}, {65, 0}, {65, 0}, {65, 1}, {64, 0},
118-
{64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 0}, {62, 1}, {61, 0}, {61, 1},
119-
{60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 0}, {59, 1}, {58, 0}, {58, 0},
120-
{58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1}, {55, 0},
121-
{55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 0}, {53, 0},
122-
{53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0}, {51, 0}, {51, 1},
123-
{50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0}, {49, 0}, {49, 1},
124-
{48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0}, {47, 1},
125-
{46, 0}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0},
126-
{45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0},
127-
{43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 0},
128-
{42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 1}, {40, 0},
129-
{40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0}, {39, 0}, {39, 0},
130-
{39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0},
99+
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, // dummy first row
100+
{1221, 136}, {1085, 108}, {977, 89}, {888, 74}, {814, 63}, {751, 53}, {698, 47}, {651, 41},
101+
{610, 36}, {574, 31}, {543, 29}, {514, 26}, {488, 23}, {465, 21}, {444, 19}, {425, 18},
102+
{407, 16}, {391, 15}, {376, 14}, {362, 13}, {349, 12}, {337, 11}, {326, 11}, {315, 10},
103+
{305, 9}, {296, 9}, {287, 8}, {279, 8}, {271, 7}, {264, 7}, {257, 7}, {250, 6},
104+
{244, 6}, {238, 5}, {233, 6}, {227, 5}, {222, 5}, {217, 5}, {212, 4}, {208, 5},
105+
{203, 4}, {199, 4}, {195, 4}, {191, 3}, {188, 4}, {184, 3}, {181, 3}, {178, 4},
106+
{174, 3}, {171, 3}, {168, 2}, {166, 3}, {163, 3}, {160, 2}, {158, 3}, {155, 2},
107+
{153, 3}, {150, 2}, {148, 2}, {146, 2}, {144, 2}, {142, 2}, {140, 2}, {138, 2},
108+
{136, 2}, {134, 2}, {132, 2}, {130, 2}, {128, 1}, {127, 2}, {125, 1}, {124, 2},
109+
{122, 1}, {121, 2}, {119, 1}, {118, 2}, {116, 1}, {115, 1}, {114, 2}, {112, 1},
110+
{111, 1}, {110, 1}, {109, 2}, {107, 1}, {106, 1}, {105, 1}, {104, 1}, {103, 1},
111+
{102, 1}, {101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1},
112+
{94, 1}, {93, 1}, {92, 1}, {91, 1}, {90, 0}, {90, 1}, {89, 1}, {88, 1},
113+
{87, 1}, {86, 0}, {86, 1}, {85, 1}, {84, 1}, {83, 0}, {83, 1}, {82, 1},
114+
{81, 0}, {81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1},
115+
{76, 0}, {76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0},
116+
{72, 1}, {71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0},
117+
{68, 1}, {67, 0}, {67, 1}, {66, 0}, {66, 0}, {66, 1}, {65, 0}, {65, 1},
118+
{64, 0}, {64, 1}, {63, 0}, {63, 0}, {63, 1}, {62, 0}, {62, 1}, {61, 0},
119+
{61, 0}, {61, 1}, {60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 1}, {58, 0},
120+
{58, 0}, {58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1},
121+
{55, 0}, {55, 0}, {55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0},
122+
{53, 0}, {53, 0}, {53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0},
123+
{51, 0}, {51, 1}, {50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0},
124+
{49, 0}, {49, 1}, {48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0},
125+
{47, 0}, {47, 0}, {47, 1}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0},
126+
{45, 0}, {45, 0}, {45, 0}, {45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0},
127+
{44, 1}, {43, 0}, {43, 0}, {43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0},
128+
{42, 0}, {42, 0}, {42, 0}, {42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0},
129+
{41, 0}, {41, 1}, {40, 0}, {40, 0}, {40, 0}, {40, 0}, {40, 0}, {40, 1},
130+
{39, 0}, {39, 0}, {39, 0}, {39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0},
131131
};
132132

133133
const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {

0 commit comments

Comments
 (0)