Browse Source

Fix #8579

Fan speed code fell into a curly brace
Scott Lahteine 6 years ago
parent
commit
dfcef11bca
1 changed files with 65 additions and 73 deletions
  1. 65
    73
      Marlin/planner.cpp

+ 65
- 73
Marlin/planner.cpp View File

@@ -410,75 +410,23 @@ void Planner::check_axes_activity() {
410 410
 
411 411
   #if ENABLED(BARICUDA)
412 412
     #if HAS_HEATER_1
413
-      uint8_t tail_valve_pressure;
413
+      uint8_t tail_valve_pressure = baricuda_valve_pressure;
414 414
     #endif
415 415
     #if HAS_HEATER_2
416
-      uint8_t tail_e_to_p_pressure;
416
+      uint8_t tail_e_to_p_pressure = baricuda_e_to_p_pressure;
417 417
     #endif
418 418
   #endif
419 419
 
420
+  #if FAN_COUNT > 0
421
+    for (uint8_t i = 0; i < FAN_COUNT; i++) tail_fan_speed[i] = fanSpeeds[i];
422
+  #endif
423
+
420 424
   if (blocks_queued()) {
421 425
 
422 426
     #if FAN_COUNT > 0
423
-
424 427
       for (uint8_t i = 0; i < FAN_COUNT; i++)
425 428
         tail_fan_speed[i] = block_buffer[block_buffer_tail].fan_speed[i];
426
-
427
-      #ifdef FAN_KICKSTART_TIME
428
-
429
-        static millis_t fan_kick_end[FAN_COUNT] = { 0 };
430
-
431
-        #define KICKSTART_FAN(f) \
432
-          if (tail_fan_speed[f]) { \
433
-            millis_t ms = millis(); \
434
-            if (fan_kick_end[f] == 0) { \
435
-              fan_kick_end[f] = ms + FAN_KICKSTART_TIME; \
436
-              tail_fan_speed[f] = 255; \
437
-            } else if (PENDING(ms, fan_kick_end[f])) \
438
-              tail_fan_speed[f] = 255; \
439
-          } else fan_kick_end[f] = 0
440
-
441
-        #if HAS_FAN0
442
-          KICKSTART_FAN(0);
443
-        #endif
444
-        #if HAS_FAN1
445
-          KICKSTART_FAN(1);
446
-        #endif
447
-        #if HAS_FAN2
448
-          KICKSTART_FAN(2);
449
-        #endif
450
-
451
-      #endif // FAN_KICKSTART_TIME
452
-
453
-      #ifdef FAN_MIN_PWM
454
-        #define CALC_FAN_SPEED(f) (tail_fan_speed[f] ? ( FAN_MIN_PWM + (tail_fan_speed[f] * (255 - FAN_MIN_PWM)) / 255 ) : 0)
455
-      #else
456
-        #define CALC_FAN_SPEED(f) tail_fan_speed[f]
457
-      #endif
458
-
459
-      #if ENABLED(FAN_SOFT_PWM)
460
-        #if HAS_FAN0
461
-          thermalManager.soft_pwm_amount_fan[0] = CALC_FAN_SPEED(0);
462
-        #endif
463
-        #if HAS_FAN1
464
-          thermalManager.soft_pwm_amount_fan[1] = CALC_FAN_SPEED(1);
465
-        #endif
466
-        #if HAS_FAN2
467
-          thermalManager.soft_pwm_amount_fan[2] = CALC_FAN_SPEED(2);
468
-        #endif
469
-      #else
470
-        #if HAS_FAN0
471
-          analogWrite(FAN_PIN, CALC_FAN_SPEED(0));
472
-        #endif
473
-        #if HAS_FAN1
474
-          analogWrite(FAN1_PIN, CALC_FAN_SPEED(1));
475
-        #endif
476
-        #if HAS_FAN2
477
-          analogWrite(FAN2_PIN, CALC_FAN_SPEED(2));
478
-        #endif
479
-      #endif
480
-
481
-    #endif // FAN_COUNT > 0
429
+    #endif
482 430
 
483 431
     block_t* block;
484 432
 
@@ -497,20 +445,6 @@ void Planner::check_axes_activity() {
497 445
       LOOP_XYZE(i) if (block->steps[i]) axis_active[i]++;
498 446
     }
499 447
   }
500
-  else {
501
-    #if FAN_COUNT > 0
502
-      for (uint8_t i = 0; i < FAN_COUNT; i++) tail_fan_speed[i] = fanSpeeds[i];
503
-    #endif
504
-
505
-    #if ENABLED(BARICUDA)
506
-      #if HAS_HEATER_1
507
-        tail_valve_pressure = baricuda_valve_pressure;
508
-      #endif
509
-      #if HAS_HEATER_2
510
-        tail_e_to_p_pressure = baricuda_e_to_p_pressure;
511
-      #endif
512
-    #endif
513
-  }
514 448
 
515 449
   #if ENABLED(DISABLE_X)
516 450
     if (!axis_active[X_AXIS]) disable_X();
@@ -525,6 +459,64 @@ void Planner::check_axes_activity() {
525 459
     if (!axis_active[E_AXIS]) disable_e_steppers();
526 460
   #endif
527 461
 
462
+  #if FAN_COUNT > 0
463
+
464
+    #if FAN_KICKSTART_TIME > 0
465
+
466
+      static millis_t fan_kick_end[FAN_COUNT] = { 0 };
467
+
468
+      #define KICKSTART_FAN(f) \
469
+        if (tail_fan_speed[f]) { \
470
+          millis_t ms = millis(); \
471
+          if (fan_kick_end[f] == 0) { \
472
+            fan_kick_end[f] = ms + FAN_KICKSTART_TIME; \
473
+            tail_fan_speed[f] = 255; \
474
+          } else if (PENDING(ms, fan_kick_end[f])) \
475
+            tail_fan_speed[f] = 255; \
476
+        } else fan_kick_end[f] = 0
477
+
478
+      #if HAS_FAN0
479
+        KICKSTART_FAN(0);
480
+      #endif
481
+      #if HAS_FAN1
482
+        KICKSTART_FAN(1);
483
+      #endif
484
+      #if HAS_FAN2
485
+        KICKSTART_FAN(2);
486
+      #endif
487
+
488
+    #endif // FAN_KICKSTART_TIME > 0
489
+
490
+    #ifdef FAN_MIN_PWM
491
+      #define CALC_FAN_SPEED(f) (tail_fan_speed[f] ? ( FAN_MIN_PWM + (tail_fan_speed[f] * (255 - FAN_MIN_PWM)) / 255 ) : 0)
492
+    #else
493
+      #define CALC_FAN_SPEED(f) tail_fan_speed[f]
494
+    #endif
495
+
496
+    #if ENABLED(FAN_SOFT_PWM)
497
+      #if HAS_FAN0
498
+        thermalManager.soft_pwm_amount_fan[0] = CALC_FAN_SPEED(0);
499
+      #endif
500
+      #if HAS_FAN1
501
+        thermalManager.soft_pwm_amount_fan[1] = CALC_FAN_SPEED(1);
502
+      #endif
503
+      #if HAS_FAN2
504
+        thermalManager.soft_pwm_amount_fan[2] = CALC_FAN_SPEED(2);
505
+      #endif
506
+    #else
507
+      #if HAS_FAN0
508
+        analogWrite(FAN_PIN, CALC_FAN_SPEED(0));
509
+      #endif
510
+      #if HAS_FAN1
511
+        analogWrite(FAN1_PIN, CALC_FAN_SPEED(1));
512
+      #endif
513
+      #if HAS_FAN2
514
+        analogWrite(FAN2_PIN, CALC_FAN_SPEED(2));
515
+      #endif
516
+    #endif
517
+
518
+  #endif // FAN_COUNT > 0
519
+
528 520
   #if ENABLED(AUTOTEMP)
529 521
     getHighESpeed();
530 522
   #endif

Loading…
Cancel
Save