grblHAL core  20260206
stepdir_map.h
Go to the documentation of this file.
1 /*
2  stepdir_map.h - An embedded CNC Controller with rs274/ngc (g-code) support
3 
4  Lookup tables for converting core step and dir signals to physical signals, includes signal inversion.
5 
6  May be used by driver code if step and/or dir pins are located to the same port.
7 
8  NOT referenced in the core grblHAL code
9 
10  Part of grblHAL
11 
12  Copyright (c) 2021-2025 Terje Io
13 
14  grblHAL is free software: you can redistribute it and/or modify
15  it under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  grblHAL is distributed in the hope that it will be useful,
20  but WITHOUT ANY WARRANTY; without even the implied warranty of
21  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  GNU General Public License for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with grblHAL. If not, see <http://www.gnu.org/licenses/>.
26 */
27 
28 #if STEP_OUTMODE == GPIO_MAP
29 
30 static const uint32_t c_step_outmap[] = {
31  0,
32  X_STEP_BIT,
33  Y_STEP_BIT,
35  Z_STEP_BIT,
39  #if N_AXIS > 3
40  M3_STEP_BIT,
41  M3_STEP_BIT | X_STEP_BIT,
42  M3_STEP_BIT | Y_STEP_BIT,
43  M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
44  M3_STEP_BIT | Z_STEP_BIT,
45  M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
46  M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
47  M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
48  #endif
49  #if N_AXIS > 4
50  M4_STEP_BIT,
51  M4_STEP_BIT | X_STEP_BIT,
52  M4_STEP_BIT | Y_STEP_BIT,
53  M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
54  M4_STEP_BIT | Z_STEP_BIT,
55  M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
56  M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
57  M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
58  M4_STEP_BIT | M3_STEP_BIT,
59  M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
60  M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
61  M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
62  M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
63  M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
64  M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
65  M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
66  #endif
67  #if N_AXIS > 5
68  M5_STEP_BIT,
69  M5_STEP_BIT | X_STEP_BIT,
70  M5_STEP_BIT | Y_STEP_BIT,
71  M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
72  M5_STEP_BIT | Z_STEP_BIT,
73  M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
74  M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
75  M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
76  M5_STEP_BIT | M3_STEP_BIT,
77  M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
78  M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
79  M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
80  M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
81  M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
82  M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
83  M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
84  M5_STEP_BIT | M4_STEP_BIT,
85  M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT,
86  M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT,
87  M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
88  M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT,
89  M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
90  M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
91  M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
92  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT,
93  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
94  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
95  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
96  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
97  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
98  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
99  M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
100  #endif
101  #if N_AXIS > 6
102  M6_STEP_BIT,
103  M6_STEP_BIT | X_STEP_BIT,
104  M6_STEP_BIT | Y_STEP_BIT,
105  M6_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
106  M6_STEP_BIT | Z_STEP_BIT,
107  M6_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
108  M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
109  M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
110  M6_STEP_BIT | M3_STEP_BIT,
111  M6_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
112  M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
113  M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
114  M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
115  M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
116  M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
117  M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
118  M6_STEP_BIT | M4_STEP_BIT,
119  M6_STEP_BIT | M4_STEP_BIT | X_STEP_BIT,
120  M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT,
121  M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
122  M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT,
123  M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
124  M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
125  M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
126  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT,
127  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
128  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
129  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
130  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
131  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
132  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
133  M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
134  M6_STEP_BIT | M5_STEP_BIT,
135  M6_STEP_BIT | M5_STEP_BIT | X_STEP_BIT,
136  M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT,
137  M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
138  M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT,
139  M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
140  M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
141  M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
142  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT,
143  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
144  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
145  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
146  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
147  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
148  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
149  M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
150  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT,
151  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT,
152  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT,
153  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
154  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT,
155  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
156  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
157  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
158  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT,
159  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
160  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
161  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
162  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
163  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
164  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
165  M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
166  #endif
167  #if N_AXIS > 7
168  M7_STEP_BIT,
169  M7_STEP_BIT | X_STEP_BIT,
170  M7_STEP_BIT | Y_STEP_BIT,
171  M7_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
172  M7_STEP_BIT | Z_STEP_BIT,
173  M7_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
174  M7_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
175  M7_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
176  M7_STEP_BIT | M3_STEP_BIT,
177  M7_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
178  M7_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
179  M7_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
180  M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
181  M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
182  M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
183  M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
184  M7_STEP_BIT | M4_STEP_BIT,
185  M7_STEP_BIT | M4_STEP_BIT | X_STEP_BIT,
186  M7_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT,
187  M7_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
188  M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT,
189  M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
190  M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
191  M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
192  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT,
193  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
194  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
195  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
196  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
197  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
198  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
199  M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
200  M7_STEP_BIT | M5_STEP_BIT,
201  M7_STEP_BIT | M5_STEP_BIT | X_STEP_BIT,
202  M7_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT,
203  M7_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
204  M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT,
205  M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
206  M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
207  M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
208  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT,
209  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
210  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
211  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
212  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
213  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
214  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
215  M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
216  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT,
217  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT,
218  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT,
219  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
220  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT,
221  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
222  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
223  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
224  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT,
225  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
226  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
227  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
228  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
229  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
230  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
231  M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
232  M7_STEP_BIT | M6_STEP_BIT,
233  M7_STEP_BIT | M6_STEP_BIT | X_STEP_BIT,
234  M7_STEP_BIT | M6_STEP_BIT | Y_STEP_BIT,
235  M7_STEP_BIT | M6_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
236  M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT,
237  M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
238  M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
239  M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
240  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT,
241  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
242  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
243  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
244  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
245  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
246  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
247  M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
248  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT,
249  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | X_STEP_BIT,
250  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT,
251  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
252  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT,
253  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
254  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
255  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
256  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT,
257  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
258  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
259  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
260  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
261  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
262  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
263  M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
264  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT,
265  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | X_STEP_BIT,
266  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT,
267  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
268  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT,
269  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
270  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
271  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
272  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT,
273  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
274  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
275  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
276  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
277  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
278  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
279  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
280  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT,
281  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT,
282  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT,
283  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
284  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT,
285  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
286  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
287  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
288  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT,
289  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT,
290  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT,
291  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
292  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT,
293  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT,
294  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT,
295  M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT,
296  #endif
297 };
298 
299 static uint32_t step_outmap[sizeof(c_step_outmap) / sizeof(uint32_t)];
300 
301 #endif
302 
303 #if DIRECTION_OUTMODE == GPIO_MAP
304 
305 static const uint32_t c_dir_outmap[] = {
306  0,
314  #if N_AXIS > 3
315  M3_DIRECTION_BIT,
316  M3_DIRECTION_BIT | X_DIRECTION_BIT,
317  M3_DIRECTION_BIT | Y_DIRECTION_BIT,
318  M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
319  M3_DIRECTION_BIT | Z_DIRECTION_BIT,
320  M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
321  M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
322  M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
323  #endif
324  #if N_AXIS > 4
325  M4_DIRECTION_BIT,
326  M4_DIRECTION_BIT | X_DIRECTION_BIT,
327  M4_DIRECTION_BIT | Y_DIRECTION_BIT,
328  M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
329  M4_DIRECTION_BIT | Z_DIRECTION_BIT,
330  M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
331  M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
332  M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
333  M4_DIRECTION_BIT | M3_DIRECTION_BIT,
334  M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
335  M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
336  M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
337  M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
338  M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
339  M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
340  M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
341  #endif
342  #if N_AXIS > 5
343  M5_DIRECTION_BIT,
344  M5_DIRECTION_BIT | X_DIRECTION_BIT,
345  M5_DIRECTION_BIT | Y_DIRECTION_BIT,
346  M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
347  M5_DIRECTION_BIT | Z_DIRECTION_BIT,
348  M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
349  M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
350  M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
351  M5_DIRECTION_BIT | M3_DIRECTION_BIT,
352  M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
353  M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
354  M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
355  M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
356  M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
357  M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
358  M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
359  M5_DIRECTION_BIT | M4_DIRECTION_BIT,
360  M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT,
361  M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT,
362  M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
363  M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT,
364  M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
365  M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
366  M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
367  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT,
368  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
369  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
370  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
371  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
372  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
373  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
374  M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
375  #endif
376  #if N_AXIS > 6
377  M6_DIRECTION_BIT,
378  M6_DIRECTION_BIT | X_DIRECTION_BIT,
379  M6_DIRECTION_BIT | Y_DIRECTION_BIT,
380  M6_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
381  M6_DIRECTION_BIT | Z_DIRECTION_BIT,
382  M6_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
383  M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
384  M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
385  M6_DIRECTION_BIT | M3_DIRECTION_BIT,
386  M6_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
387  M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
388  M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
389  M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
390  M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
391  M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
392  M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
393  M6_DIRECTION_BIT | M4_DIRECTION_BIT,
394  M6_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT,
395  M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT,
396  M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
397  M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT,
398  M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
399  M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
400  M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
401  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT,
402  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
403  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
404  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
405  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
406  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
407  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
408  M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
409  M6_DIRECTION_BIT | M5_DIRECTION_BIT,
410  M6_DIRECTION_BIT | M5_DIRECTION_BIT | X_DIRECTION_BIT,
411  M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT,
412  M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
413  M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT,
414  M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
415  M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
416  M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
417  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT,
418  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
419  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
420  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
421  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
422  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
423  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
424  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
425  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT,
426  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT,
427  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT,
428  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
429  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT,
430  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
431  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
432  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
433  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT,
434  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
435  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
436  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
437  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
438  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
439  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
440  M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
441  #endif
442  #if N_AXIS > 7
443  M7_DIRECTION_BIT,
444  M7_DIRECTION_BIT | X_DIRECTION_BIT,
445  M7_DIRECTION_BIT | Y_DIRECTION_BIT,
446  M7_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
447  M7_DIRECTION_BIT | Z_DIRECTION_BIT,
448  M7_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
449  M7_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
450  M7_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
451  M7_DIRECTION_BIT | M3_DIRECTION_BIT,
452  M7_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
453  M7_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
454  M7_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
455  M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
456  M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
457  M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
458  M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
459  M7_DIRECTION_BIT | M4_DIRECTION_BIT,
460  M7_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT,
461  M7_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT,
462  M7_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
463  M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT,
464  M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
465  M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
466  M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
467  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT,
468  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
469  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
470  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
471  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
472  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
473  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
474  M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
475  M7_DIRECTION_BIT | M5_DIRECTION_BIT,
476  M7_DIRECTION_BIT | M5_DIRECTION_BIT | X_DIRECTION_BIT,
477  M7_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT,
478  M7_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
479  M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT,
480  M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
481  M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
482  M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
483  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT,
484  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
485  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
486  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
487  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
488  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
489  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
490  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
491  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT,
492  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT,
493  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT,
494  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
495  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT,
496  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
497  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
498  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
499  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT,
500  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
501  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
502  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
503  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
504  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
505  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
506  M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
507  M7_DIRECTION_BIT | M6_DIRECTION_BIT,
508  M7_DIRECTION_BIT | M6_DIRECTION_BIT | X_DIRECTION_BIT,
509  M7_DIRECTION_BIT | M6_DIRECTION_BIT | Y_DIRECTION_BIT,
510  M7_DIRECTION_BIT | M6_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
511  M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT,
512  M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
513  M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
514  M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
515  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT,
516  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
517  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
518  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
519  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
520  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
521  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
522  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
523  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT,
524  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT,
525  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT,
526  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
527  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT,
528  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
529  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
530  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
531  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT,
532  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
533  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
534  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
535  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
536  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
537  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
538  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
539  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT,
540  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | X_DIRECTION_BIT,
541  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT,
542  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
543  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT,
544  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
545  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
546  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
547  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT,
548  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
549  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
550  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
551  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
552  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
553  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
554  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
555  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT,
556  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT,
557  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT,
558  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
559  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT,
560  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
561  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
562  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
563  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT,
564  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT,
565  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT,
566  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
567  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT,
568  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT,
569  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT,
570  M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT,
571  #endif
572 };
573 
574 
575 static uint32_t dir_outmap[sizeof(c_dir_outmap) / sizeof(uint32_t)];
576 
577 #endif
578 
579 #if (STEP_OUTMODE == GPIO_MAP) || (DIRECTION_OUTMODE == GPIO_MAP)
580 
581 #define USE_STEPDIR_MAP 1
582 
583 static void stepdirmap_init (settings_t *settings)
584 {
585  uint_fast8_t i;
586 
587 #if STEP_OUTMODE == GPIO_MAP
588 
589  i = sizeof(step_outmap) / sizeof(uint32_t);
590  do {
591  i--;
592  step_outmap[i] = c_step_outmap[i ^ settings->steppers.step_invert.value];
593  } while(i);
594 #endif
595 
596 #if DIRECTION_OUTMODE == GPIO_MAP
597  i = sizeof(dir_outmap) / sizeof(uint32_t);
598  do {
599  i--;
600  dir_outmap[i] = c_dir_outmap[i ^ settings->steppers.dir_invert.value];
601  } while(i);
602 #endif
603 }
604 
605 #endif
606 
#define Z_DIRECTION_BIT
Definition: motor_pins.h:964
#define X_STEP_BIT
Definition: motor_pins.h:921
#define Y_STEP_BIT
Definition: motor_pins.h:924
#define X_DIRECTION_BIT
Definition: motor_pins.h:958
#define Y_DIRECTION_BIT
Definition: motor_pins.h:961
#define Z_STEP_BIT
Definition: motor_pins.h:927
settings_t settings
Definition: settings.c:46
Definition: settings.h:881
stepper_settings_t steppers
Definition: settings.h:901
axes_signals_t dir_invert
Definition: settings.h:729
axes_signals_t step_invert
Definition: settings.h:728
uint8_t value
Definition: nuts_bolts.h:249