Browse Source

Wrap delay macros in do{}while(0)

Scott Lahteine 7 years ago
parent
commit
7b6e742436
1 changed files with 16 additions and 16 deletions
  1. 16
    16
      Marlin/src/core/macros.h

+ 16
- 16
Marlin/src/core/macros.h View File

@@ -53,10 +53,10 @@
53 53
 // Highly granular delays for step pulses, etc.
54 54
 #define DELAY_0_NOP NOOP
55 55
 #define DELAY_1_NOP __asm__("nop\n\t")
56
-#define DELAY_2_NOP DELAY_1_NOP; DELAY_1_NOP
57
-#define DELAY_3_NOP DELAY_1_NOP; DELAY_2_NOP
58
-#define DELAY_4_NOP DELAY_1_NOP; DELAY_3_NOP
59
-#define DELAY_5_NOP DELAY_1_NOP; DELAY_4_NOP
56
+#define DELAY_2_NOP do{ DELAY_1_NOP; DELAY_1_NOP; }while(0)
57
+#define DELAY_3_NOP do{ DELAY_1_NOP; DELAY_2_NOP; }while(0)
58
+#define DELAY_4_NOP do{ DELAY_1_NOP; DELAY_3_NOP; }while(0)
59
+#define DELAY_5_NOP do{ DELAY_1_NOP; DELAY_4_NOP; }while(0)
60 60
 
61 61
 #define DELAY_NOPS(X) \
62 62
   switch (X) { \
@@ -72,23 +72,23 @@
72 72
     case 2:  DELAY_1_NOP; case 1:  DELAY_1_NOP; \
73 73
   }
74 74
 
75
-#define DELAY_10_NOP DELAY_5_NOP;  DELAY_5_NOP
76
-#define DELAY_20_NOP DELAY_10_NOP; DELAY_10_NOP
75
+#define DELAY_10_NOP do{ DELAY_5_NOP;  DELAY_5_NOP;  }while(0)
76
+#define DELAY_20_NOP do{ DELAY_10_NOP; DELAY_10_NOP; }while(0)
77 77
 
78 78
 #if CYCLES_PER_MICROSECOND == 16
79
-  #define DELAY_1US DELAY_10_NOP; DELAY_5_NOP; DELAY_1_NOP
79
+  #define DELAY_1US do { DELAY_10_NOP; DELAY_5_NOP; DELAY_1_NOP; }while(0)
80 80
 #else
81 81
   #define DELAY_1US DELAY_20_NOP
82 82
 #endif
83
-#define DELAY_2US  DELAY_1US; DELAY_1US
84
-#define DELAY_3US  DELAY_1US; DELAY_2US
85
-#define DELAY_4US  DELAY_1US; DELAY_3US
86
-#define DELAY_5US  DELAY_1US; DELAY_4US
87
-#define DELAY_6US  DELAY_1US; DELAY_5US
88
-#define DELAY_7US  DELAY_1US; DELAY_6US
89
-#define DELAY_8US  DELAY_1US; DELAY_7US
90
-#define DELAY_9US  DELAY_1US; DELAY_8US
91
-#define DELAY_10US DELAY_1US; DELAY_9US
83
+#define DELAY_2US  do{ DELAY_1US; DELAY_1US; }while(0)
84
+#define DELAY_3US  do{ DELAY_1US; DELAY_2US; }while(0)
85
+#define DELAY_4US  do{ DELAY_1US; DELAY_3US; }while(0)
86
+#define DELAY_5US  do{ DELAY_1US; DELAY_4US; }while(0)
87
+#define DELAY_6US  do{ DELAY_1US; DELAY_5US; }while(0)
88
+#define DELAY_7US  do{ DELAY_1US; DELAY_6US; }while(0)
89
+#define DELAY_8US  do{ DELAY_1US; DELAY_7US; }while(0)
90
+#define DELAY_9US  do{ DELAY_1US; DELAY_8US; }while(0)
91
+#define DELAY_10US do{ DELAY_1US; DELAY_9US; }while(0)
92 92
 
93 93
 // Remove compiler warning on an unused variable
94 94
 #define UNUSED(x) (void) (x)

Loading…
Cancel
Save