/* stepdir_map.h - An embedded CNC Controller with rs274/ngc (g-code) support Lookup tables for converting core step and dir signals to physical signals, includes signal inversion. May be used by driver code if step and/or dir pins are located to the same port. NOT referenced in the core grblHAL code Part of grblHAL Copyright (c) 2021-2025 Terje Io grblHAL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. grblHAL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with grblHAL. If not, see . */ #if STEP_OUTMODE == GPIO_MAP static const uint32_t c_step_outmap[] = { 0, X_STEP_BIT, Y_STEP_BIT, Y_STEP_BIT | X_STEP_BIT, Z_STEP_BIT, Z_STEP_BIT | X_STEP_BIT, Z_STEP_BIT | Y_STEP_BIT, Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, #if N_AXIS > 3 M3_STEP_BIT, M3_STEP_BIT | X_STEP_BIT, M3_STEP_BIT | Y_STEP_BIT, M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M3_STEP_BIT | Z_STEP_BIT, M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, #endif #if N_AXIS > 4 M4_STEP_BIT, M4_STEP_BIT | X_STEP_BIT, M4_STEP_BIT | Y_STEP_BIT, M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M4_STEP_BIT | Z_STEP_BIT, M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, #endif #if N_AXIS > 5 M5_STEP_BIT, M5_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | Z_STEP_BIT, M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, #endif #if N_AXIS > 6 M6_STEP_BIT, M6_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, #endif #if N_AXIS > 7 M7_STEP_BIT, M7_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | X_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT, M7_STEP_BIT | M6_STEP_BIT | M5_STEP_BIT | M4_STEP_BIT | M3_STEP_BIT | Z_STEP_BIT | Y_STEP_BIT | X_STEP_BIT, #endif }; static uint32_t step_outmap[sizeof(c_step_outmap) / sizeof(uint32_t)]; #endif #if DIRECTION_OUTMODE == GPIO_MAP static const uint32_t c_dir_outmap[] = { 0, X_DIRECTION_BIT, Y_DIRECTION_BIT, Y_DIRECTION_BIT | X_DIRECTION_BIT, Z_DIRECTION_BIT, Z_DIRECTION_BIT | X_DIRECTION_BIT, Z_DIRECTION_BIT | Y_DIRECTION_BIT, Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, #if N_AXIS > 3 M3_DIRECTION_BIT, M3_DIRECTION_BIT | X_DIRECTION_BIT, M3_DIRECTION_BIT | Y_DIRECTION_BIT, M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M3_DIRECTION_BIT | Z_DIRECTION_BIT, M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, #endif #if N_AXIS > 4 M4_DIRECTION_BIT, M4_DIRECTION_BIT | X_DIRECTION_BIT, M4_DIRECTION_BIT | Y_DIRECTION_BIT, M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M4_DIRECTION_BIT | Z_DIRECTION_BIT, M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, #endif #if N_AXIS > 5 M5_DIRECTION_BIT, M5_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | Z_DIRECTION_BIT, M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, #endif #if N_AXIS > 6 M6_DIRECTION_BIT, M6_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, #endif #if N_AXIS > 7 M7_DIRECTION_BIT, M7_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | X_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT, M7_DIRECTION_BIT | M6_DIRECTION_BIT | M5_DIRECTION_BIT | M4_DIRECTION_BIT | M3_DIRECTION_BIT | Z_DIRECTION_BIT | Y_DIRECTION_BIT | X_DIRECTION_BIT, #endif }; static uint32_t dir_outmap[sizeof(c_dir_outmap) / sizeof(uint32_t)]; #endif #if (STEP_OUTMODE == GPIO_MAP) || (DIRECTION_OUTMODE == GPIO_MAP) #define USE_STEPDIR_MAP 1 static void stepdirmap_init (settings_t *settings) { uint_fast8_t i; #if STEP_OUTMODE == GPIO_MAP i = sizeof(step_outmap) / sizeof(uint32_t); do { i--; step_outmap[i] = c_step_outmap[i ^ settings->steppers.step_invert.value]; } while(i); #endif #if DIRECTION_OUTMODE == GPIO_MAP i = sizeof(dir_outmap) / sizeof(uint32_t); do { i--; dir_outmap[i] = c_dir_outmap[i ^ settings->steppers.dir_invert.value]; } while(i); #endif } #endif