Browse Source

:art: Additional utility macros

Scott Lahteine 4 years ago
parent
commit
390878e78a

+ 38
- 0
Marlin/src/core/macros.h View File

@@ -237,6 +237,38 @@
237 237
     memcpy(&a[0],&b[0],_MIN(sizeof(a),sizeof(b))); \
238 238
   }while(0)
239 239
 
240
+#define CODE_9( A,B,C,D,E,F,G,H,I,...) A; B; C; D; E; F; G; H; I
241
+#define CODE_8( A,B,C,D,E,F,G,H,...) A; B; C; D; E; F; G; H
242
+#define CODE_7( A,B,C,D,E,F,G,...) A; B; C; D; E; F; G
243
+#define CODE_6( A,B,C,D,E,F,...) A; B; C; D; E; F
244
+#define CODE_5( A,B,C,D,E,...) A; B; C; D; E
245
+#define CODE_4( A,B,C,D,...) A; B; C; D
246
+#define CODE_3( A,B,C,...) A; B; C
247
+#define CODE_2( A,B,...) A; B
248
+#define CODE_1( A,...) A
249
+#define _CODE_N(N,V...) CODE_##N(V)
250
+#define CODE_N(N,V...) _CODE_N(N,V)
251
+
252
+#define GANG_16(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,...) A B C D E F G H I J K L M N O P
253
+#define GANG_15(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,...) A B C D E F G H I J K L M N O
254
+#define GANG_14(A,B,C,D,E,F,G,H,I,J,K,L,M,N,...) A B C D E F G H I J K L M N
255
+#define GANG_13(A,B,C,D,E,F,G,H,I,J,K,L,M...) A B C D E F G H I J K L M
256
+#define GANG_12(A,B,C,D,E,F,G,H,I,J,K,L...) A B C D E F G H I J K L
257
+#define GANG_11(A,B,C,D,E,F,G,H,I,J,K,...) A B C D E F G H I J K
258
+#define GANG_10(A,B,C,D,E,F,G,H,I,J,...) A B C D E F G H I J
259
+#define GANG_9( A,B,C,D,E,F,G,H,I,...) A B C D E F G H I
260
+#define GANG_8( A,B,C,D,E,F,G,H,...) A B C D E F G H
261
+#define GANG_7( A,B,C,D,E,F,G,...) A B C D E F G
262
+#define GANG_6( A,B,C,D,E,F,...) A B C D E F
263
+#define GANG_5( A,B,C,D,E,...) A B C D E
264
+#define GANG_4( A,B,C,D,...) A B C D
265
+#define GANG_3( A,B,C,...) A B C
266
+#define GANG_2( A,B,...) A B
267
+#define GANG_1( A,...) A
268
+#define _GANG_N(N,V...) GANG_##N(V)
269
+#define GANG_N(N,V...) _GANG_N(N,V)
270
+#define GANG_N_1(N,K) _GANG_N(N,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K)
271
+
240 272
 // Macros for initializing arrays
241 273
 #define LIST_16(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,...) A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P
242 274
 #define LIST_15(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,...) A,B,C,D,E,F,G,H,I,J,K,L,M,N,O
@@ -254,10 +286,13 @@
254 286
 #define LIST_3( A,B,C,...) A,B,C
255 287
 #define LIST_2( A,B,...) A,B
256 288
 #define LIST_1( A,...) A
289
+#define LIST_0(...)
257 290
 
258 291
 #define _LIST_N(N,V...) LIST_##N(V)
259 292
 #define LIST_N(N,V...) _LIST_N(N,V)
293
+#define LIST_N_1(N,K) _LIST_N(N,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K)
260 294
 #define ARRAY_N(N,V...) { _LIST_N(N,V) }
295
+#define ARRAY_N_1(N,K)  { LIST_N_1(N,K) }
261 296
 
262 297
 #define _JOIN_1(O)         (O)
263 298
 #define JOIN_N(N,C,V...)   (DO(JOIN,C,LIST_N(N,V)))
@@ -465,6 +500,9 @@
465 500
 #define ADD8(N)  ADD4(ADD4(N))
466 501
 #define ADD9(N)  ADD4(ADD5(N))
467 502
 #define ADD10(N) ADD5(ADD5(N))
503
+#define SUM(A,B) _CAT(ADD,A)(B)
504
+#define DOUBLE_(n) ADD##n(n)
505
+#define DOUBLE(n) DOUBLE_(n)
468 506
 
469 507
 // Macros for subtracting
470 508
 #define DEC_0   0

+ 2
- 1
Marlin/src/gcode/feature/trinamic/M122.cpp View File

@@ -32,7 +32,8 @@
32 32
  * M122: Debug TMC drivers
33 33
  */
34 34
 void GcodeSuite::M122() {
35
-  xyze_bool_t print_axis = { false, false, false, false };
35
+  xyze_bool_t print_axis = ARRAY_N_1(NUM_AXIS, false);
36
+
36 37
   bool print_all = true;
37 38
   LOOP_XYZE(i) if (parser.seen(axis_codes[i])) { print_axis[i] = true; print_all = false; }
38 39
 

+ 2
- 2
Marlin/src/inc/Conditionals_LCD.h View File

@@ -617,9 +617,9 @@
617 617
 // Helper macros for extruder and hotend arrays
618 618
 #define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
619 619
 #define ARRAY_BY_EXTRUDERS(V...) ARRAY_N(EXTRUDERS, V)
620
-#define ARRAY_BY_EXTRUDERS1(v1) ARRAY_BY_EXTRUDERS(v1, v1, v1, v1, v1, v1, v1, v1)
620
+#define ARRAY_BY_EXTRUDERS1(v1) ARRAY_N_1(EXTRUDERS, v1)
621 621
 #define ARRAY_BY_HOTENDS(V...) ARRAY_N(HOTENDS, V)
622
-#define ARRAY_BY_HOTENDS1(v1) ARRAY_BY_HOTENDS(v1, v1, v1, v1, v1, v1, v1, v1)
622
+#define ARRAY_BY_HOTENDS1(v1) ARRAY_N_1(HOTENDS, v1)
623 623
 
624 624
 #if ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR)
625 625
   #define DO_SWITCH_EXTRUDER 1

+ 1
- 1
Marlin/src/module/temperature.cpp View File

@@ -313,7 +313,7 @@ const char str_t_thermal_runaway[] PROGMEM = STR_T_THERMAL_RUNAWAY,
313 313
   #endif
314 314
 
315 315
   #if ENABLED(ADAPTIVE_FAN_SLOWING)
316
-    uint8_t Temperature::fan_speed_scaler[FAN_COUNT] = ARRAY_N(FAN_COUNT, 128, 128, 128, 128, 128, 128, 128, 128);
316
+    uint8_t Temperature::fan_speed_scaler[FAN_COUNT] = ARRAY_N_1(FAN_COUNT, 128);
317 317
   #endif
318 318
 
319 319
   /**

Loading…
Cancel
Save