Parcourir la source

Use safe_delay to ensure watchdog reset

Scott Lahteine il y a 8 ans
Parent
révision
a9fc30ae2e
3 fichiers modifiés avec 29 ajouts et 30 suppressions
  1. 3
    3
      Marlin/Marlin_main.cpp
  2. 7
    7
      Marlin/UBL_Bed_Leveling.cpp
  3. 19
    20
      Marlin/UBL_G29.cpp

+ 3
- 3
Marlin/Marlin_main.cpp Voir le fichier

@@ -6023,7 +6023,7 @@ inline void gcode_M81() {
6023 6023
       fanSpeeds[0] = 0;
6024 6024
     #endif
6025 6025
   #endif
6026
-  delay(1000); // Wait 1 second before switching off
6026
+  safe_delay(1000); // Wait 1 second before switching off
6027 6027
   #if HAS_SUICIDE
6028 6028
     stepper.synchronize();
6029 6029
     suicide();
@@ -7589,7 +7589,7 @@ inline void gcode_M503() {
7589 7589
     // Synchronize steppers and then disable extruders steppers for manual filament changing
7590 7590
     stepper.synchronize();
7591 7591
     disable_e_steppers();
7592
-    delay(100);
7592
+    safe_delay(100);
7593 7593
 
7594 7594
     millis_t nozzle_timeout = millis() + (millis_t)(FILAMENT_CHANGE_NOZZLE_TIMEOUT) * 1000L;
7595 7595
     bool nozzle_timed_out = false;
@@ -8112,7 +8112,7 @@ inline void gcode_M999() {
8112 8112
   inline void move_extruder_servo(uint8_t e) {
8113 8113
     const int angles[2] = SWITCHING_EXTRUDER_SERVO_ANGLES;
8114 8114
     MOVE_SERVO(SWITCHING_EXTRUDER_SERVO_NR, angles[e]);
8115
-    delay(500);
8115
+    safe_delay(500);
8116 8116
   }
8117 8117
 #endif
8118 8118
 

+ 7
- 7
Marlin/UBL_Bed_Leveling.cpp Voir le fichier

@@ -183,7 +183,7 @@
183 183
         #if TX_BUFFER_SIZE>0
184 184
           MYSERIAL.flushTX();
185 185
         #endif
186
-        delay(15);
186
+        safe_delay(15);
187 187
       }
188 188
       
189 189
       SERIAL_ECHOPAIR("(", UBL_MESH_NUM_X_POINTS - 1);
@@ -193,20 +193,20 @@
193 193
       SERIAL_ECHOPAIR("(", UBL_MESH_MIN_X);
194 194
       SERIAL_ECHOPAIR(",", UBL_MESH_MAX_Y);
195 195
       SERIAL_CHAR(')');
196
-      delay(15);
196
+      safe_delay(15);
197 197
 
198 198
       for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++) {
199 199
         SERIAL_ECHOPGM("            ");
200 200
         #if TX_BUFFER_SIZE>0
201 201
           MYSERIAL.flushTX();
202 202
         #endif
203
-        delay(15);
203
+        safe_delay(15);
204 204
       }
205 205
 
206 206
       SERIAL_ECHOPAIR("(", UBL_MESH_MAX_X);
207 207
       SERIAL_ECHOPAIR(",", UBL_MESH_MAX_Y);
208 208
       SERIAL_ECHOLNPGM(")");
209
-      delay(15);
209
+      safe_delay(15);
210 210
     }
211 211
 
212 212
     for (j = UBL_MESH_NUM_Y_POINTS - 1; j >= 0; j--) {
@@ -234,7 +234,7 @@
234 234
         #if TX_BUFFER_SIZE>0
235 235
           MYSERIAL.flushTX();
236 236
         #endif
237
-        delay(15);
237
+        safe_delay(15);
238 238
         if (map_type==0) {
239 239
           if (i == current_xi && j == current_yi) // is the nozzle here? if so, finish marking the number
240 240
             SERIAL_CHAR(']');
@@ -260,7 +260,7 @@
260 260
         #if TX_BUFFER_SIZE>0
261 261
           MYSERIAL.flushTX();
262 262
         #endif
263
-        delay(15);
263
+        safe_delay(15);
264 264
       }
265 265
       SERIAL_ECHOPAIR("(", int(UBL_MESH_MAX_X));
266 266
       SERIAL_ECHOPAIR(",", int(UBL_MESH_MIN_Y));
@@ -276,7 +276,7 @@
276 276
         #if TX_BUFFER_SIZE>0
277 277
           MYSERIAL.flushTX();
278 278
         #endif
279
-        delay(15);
279
+        safe_delay(15);
280 280
       }
281 281
       SERIAL_ECHOPAIR("(", UBL_MESH_NUM_X_POINTS-1);
282 282
       SERIAL_ECHOPAIR(",", 0);

+ 19
- 20
Marlin/UBL_G29.cpp Voir le fichier

@@ -497,8 +497,7 @@
497 497
           SERIAL_ECHOLNPGM("Checking G29 has control of LCD Panel:");
498 498
           wait_for_user = true;
499 499
           while (wait_for_user) {
500
-            idle();
501
-            delay(250);
500
+            safe_delay(250);
502 501
             SERIAL_ECHO((int)ubl_encoderDiff);
503 502
             ubl_encoderDiff = 0;
504 503
             SERIAL_EOL;
@@ -644,7 +643,7 @@
644 643
           }
645 644
         }
646 645
         ubl_has_control_of_lcd_panel = false;
647
-        delay(20); // We don't want any switch noise.
646
+        safe_delay(20); // We don't want any switch noise.
648 647
 
649 648
         ubl.state.z_offset = measured_z;
650 649
 
@@ -734,7 +733,7 @@
734 733
         }
735 734
         ubl_has_control_of_lcd_panel = false;
736 735
         restore_ubl_active_state_and_leave();
737
-        delay(50);  // Debounce the Encoder wheel
736
+        safe_delay(50);  // Debounce the Encoder wheel
738 737
         return;
739 738
       }
740 739
 
@@ -1113,7 +1112,7 @@
1113 1112
     else
1114 1113
       SERIAL_PROTOCOLPGM("In");
1115 1114
     SERIAL_PROTOCOLLNPGM("ctive.\n");
1116
-    delay(50);
1115
+    safe_delay(50);
1117 1116
 
1118 1117
     if (ubl.state.eeprom_storage_slot == -1)
1119 1118
       SERIAL_PROTOCOLPGM("No Mesh Loaded.");
@@ -1123,7 +1122,7 @@
1123 1122
       SERIAL_PROTOCOLPGM(" Loaded.");
1124 1123
     }
1125 1124
     SERIAL_EOL;
1126
-    delay(50);
1125
+    safe_delay(50);
1127 1126
 
1128 1127
     #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1129 1128
       SERIAL_PROTOCOLPAIR("g29_correction_fade_height : ", ubl.state.g29_correction_fade_height);
@@ -1133,13 +1132,13 @@
1133 1132
     SERIAL_PROTOCOLPGM("z_offset: ");
1134 1133
     SERIAL_PROTOCOL_F(ubl.state.z_offset, 6);
1135 1134
     SERIAL_EOL;
1136
-    delay(50);
1135
+    safe_delay(50);
1137 1136
 
1138 1137
     SERIAL_PROTOCOLPGM("X-Axis Mesh Points at: ");
1139 1138
     for (uint8_t i = 0; i < UBL_MESH_NUM_X_POINTS; i++) {
1140 1139
       SERIAL_PROTOCOL_F( ubl.map_x_index_to_bed_location(i), 1);
1141 1140
       SERIAL_PROTOCOLPGM("  ");
1142
-      delay(50);
1141
+      safe_delay(50);
1143 1142
     }
1144 1143
     SERIAL_EOL;
1145 1144
 
@@ -1147,7 +1146,7 @@
1147 1146
     for (uint8_t i = 0; i < UBL_MESH_NUM_Y_POINTS; i++) {
1148 1147
       SERIAL_PROTOCOL_F( ubl.map_y_index_to_bed_location(i), 1);
1149 1148
       SERIAL_PROTOCOLPGM("  ");
1150
-      delay(50);
1149
+      safe_delay(50);
1151 1150
     }
1152 1151
     SERIAL_EOL;
1153 1152
 
@@ -1156,13 +1155,13 @@
1156 1155
       SERIAL_PROTOCOLLNPAIR("  state:", READ(KILL_PIN));
1157 1156
     #endif
1158 1157
     SERIAL_EOL;
1159
-    delay(50);
1158
+    safe_delay(50);
1160 1159
 
1161 1160
     SERIAL_PROTOCOLLNPAIR("ubl_state_at_invocation :", ubl_state_at_invocation);
1162 1161
     SERIAL_EOL;
1163 1162
     SERIAL_PROTOCOLLNPAIR("ubl_state_recursion_chk :", ubl_state_recursion_chk);
1164 1163
     SERIAL_EOL;
1165
-    delay(50);
1164
+    safe_delay(50);
1166 1165
     SERIAL_PROTOCOLPGM("Free EEPROM space starts at: 0x");
1167 1166
     prt_hex_word(ubl_eeprom_start);
1168 1167
     SERIAL_EOL;
@@ -1170,42 +1169,42 @@
1170 1169
     SERIAL_PROTOCOLPGM("end of EEPROM              : ");
1171 1170
     prt_hex_word(E2END);
1172 1171
     SERIAL_EOL;
1173
-    delay(50);
1172
+    safe_delay(50);
1174 1173
 
1175 1174
     SERIAL_PROTOCOLLNPAIR("sizeof(ubl) :  ", (int)sizeof(ubl));
1176 1175
     SERIAL_EOL;
1177 1176
     SERIAL_PROTOCOLLNPAIR("z_value[][] size: ", (int)sizeof(z_values));
1178 1177
     SERIAL_EOL;
1179
-    delay(50);
1178
+    safe_delay(50);
1180 1179
 
1181 1180
     SERIAL_PROTOCOLPGM("EEPROM free for UBL: 0x");
1182 1181
     prt_hex_word(k);
1183 1182
     SERIAL_EOL;
1184
-    delay(50);
1183
+    safe_delay(50);
1185 1184
 
1186 1185
     SERIAL_PROTOCOLPGM("EEPROM can hold 0x");
1187 1186
     prt_hex_word(k / sizeof(z_values));
1188 1187
     SERIAL_PROTOCOLLNPGM(" meshes.\n");
1189
-    delay(50);
1188
+    safe_delay(50);
1190 1189
 
1191 1190
     SERIAL_PROTOCOLPGM("sizeof(ubl.state) :");
1192 1191
     prt_hex_word(sizeof(ubl.state));
1193 1192
 
1194 1193
     SERIAL_PROTOCOLPAIR("\nUBL_MESH_NUM_X_POINTS  ", UBL_MESH_NUM_X_POINTS);
1195 1194
     SERIAL_PROTOCOLPAIR("\nUBL_MESH_NUM_Y_POINTS  ", UBL_MESH_NUM_Y_POINTS);
1196
-    delay(50);
1195
+    safe_delay(50);
1197 1196
     SERIAL_PROTOCOLPAIR("\nUBL_MESH_MIN_X         ", UBL_MESH_MIN_X);
1198 1197
     SERIAL_PROTOCOLPAIR("\nUBL_MESH_MIN_Y         ", UBL_MESH_MIN_Y);
1199
-    delay(50);
1198
+    safe_delay(50);
1200 1199
     SERIAL_PROTOCOLPAIR("\nUBL_MESH_MAX_X         ", UBL_MESH_MAX_X);
1201 1200
     SERIAL_PROTOCOLPAIR("\nUBL_MESH_MAX_Y         ", UBL_MESH_MAX_Y);
1202
-    delay(50);
1201
+    safe_delay(50);
1203 1202
     SERIAL_PROTOCOLPGM("\nMESH_X_DIST        ");
1204 1203
     SERIAL_PROTOCOL_F(MESH_X_DIST, 6);
1205 1204
     SERIAL_PROTOCOLPGM("\nMESH_Y_DIST        ");
1206 1205
     SERIAL_PROTOCOL_F(MESH_Y_DIST, 6);
1207 1206
     SERIAL_EOL;
1208
-    delay(50);
1207
+    safe_delay(50);
1209 1208
 
1210 1209
     if (!ubl.sanity_check())
1211 1210
       SERIAL_PROTOCOLLNPGM("Unified Bed Leveling sanity checks passed.");
@@ -1408,7 +1407,7 @@
1408 1407
         }
1409 1408
       }
1410 1409
 
1411
-      delay(20);                       // We don't want any switch noise.
1410
+      safe_delay(20);                       // We don't want any switch noise.
1412 1411
 
1413 1412
       z_values[location.x_index][location.y_index] = new_z;
1414 1413
 

Chargement…
Annuler
Enregistrer