Browse Source

Further reduce code by using precompiler logic

Robert F-C 12 years ago
parent
commit
f1263d3f88
2 changed files with 15 additions and 16 deletions
  1. 1
    1
      Marlin/Configuration_adv.h
  2. 14
    15
      Marlin/temperature.cpp

+ 1
- 1
Marlin/Configuration_adv.h View File

@@ -86,7 +86,7 @@
86 86
 //===========================================================================
87 87
 
88 88
 // This defines the number of extruders
89
-#define EXTRUDERS 1
89
+#define EXTRUDERS 2
90 90
 
91 91
 #define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
92 92
 

+ 14
- 15
Marlin/temperature.cpp View File

@@ -400,12 +400,13 @@ void manage_heater()
400 400
 
401 401
   } // End extruder for loop
402 402
   
403
-  #if EXTRUDER_0_AUTO_FAN_PIN > -1
403
+  #if EXTRUDER_0_AUTO_FAN_PIN > -1 || EXTRUDER_1_AUTO_FAN_PIN > -1 || EXTRUDER_2_AUTO_FAN_PIN > -1
404
+    bool newFanState;
405
+    #if EXTRUDER_0_AUTO_FAN_PIN > -1
404 406
     // check the extruder 0 setting (and any ganged auto fan outputs)
405
-    bool newFanState = (EXTRUDER_0_AUTO_FAN_PIN > -1 && 
406
-        (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE || 
407
+    newFanState = (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE || 
407 408
             (EXTRUDER_0_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN && current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) || 
408
-            (EXTRUDER_0_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN && current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE)));
409
+            (EXTRUDER_0_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN && current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE));
409 410
     if ((extruderAutoFanState & 1) != newFanState) // store state in first bit
410 411
     {
411 412
         int newFanSpeed = (newFanState ? EXTRUDER_AUTO_FAN_SPEED : 0);
@@ -416,12 +417,11 @@ void manage_heater()
416 417
         analogWrite(EXTRUDER_0_AUTO_FAN_PIN, newFanSpeed);
417 418
         extruderAutoFanState = newFanState | (extruderAutoFanState & ~1);
418 419
     }
419
-  #endif //EXTRUDER_0_AUTO_FAN_PIN > -1
420
-  #if EXTRUDER_1_AUTO_FAN_PIN > -1
420
+    #endif //EXTRUDER_0_AUTO_FAN_PIN > -1
421
+    #if EXTRUDER_1_AUTO_FAN_PIN > -1 && EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN
421 422
     // check the extruder 1 setting (except when extruder 1 is the same as 0)
422
-    newFanState = (EXTRUDER_1_AUTO_FAN_PIN > -1 && EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN &&
423
-        (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE ||
424
-            (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN && current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE)));
423
+    newFanState = (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE ||
424
+            (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN && current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE));
425 425
     if ((extruderAutoFanState & 2) != (newFanState<<1)) // use second bit
426 426
     {
427 427
         int newFanSpeed = (newFanState ? EXTRUDER_AUTO_FAN_SPEED : 0);
@@ -432,12 +432,10 @@ void manage_heater()
432 432
         analogWrite(EXTRUDER_1_AUTO_FAN_PIN, newFanSpeed);
433 433
         extruderAutoFanState = (newFanState<<1) | (extruderAutoFanState & ~2);
434 434
     }
435
-  #endif //EXTRUDER_1_AUTO_FAN_PIN > -1
436
-  #if EXTRUDER_2_AUTO_FAN_PIN > -1
435
+    #endif //EXTRUDER_1_AUTO_FAN_PIN > -1
436
+    #if EXTRUDER_2_AUTO_FAN_PIN > -1 && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN
437 437
     // check the extruder 2 setting (except when extruder 2 is the same as 1 or 0)
438
-    newFanState = (EXTRUDER_2_AUTO_FAN_PIN > -1 && 
439
-            EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN &&
440
-        current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE);
438
+    newFanState = (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE);
441 439
     if ((extruderAutoFanState & 4) != (newFanState<<2)) // use third bit
442 440
     {
443 441
         int newFanSpeed = (newFanState ? EXTRUDER_AUTO_FAN_SPEED : 0);
@@ -448,7 +446,8 @@ void manage_heater()
448 446
         analogWrite(EXTRUDER_2_AUTO_FAN_PIN, newFanSpeed);
449 447
         extruderAutoFanState = (newFanState<<2) | (extruderAutoFanState & ~4);
450 448
     }
451
-  #endif //EXTRUDER_2_AUTO_FAN_PIN > -1
449
+    #endif //EXTRUDER_2_AUTO_FAN_PIN > -1
450
+  #endif // any AUTO_FAN_PIN enabled  
452 451
 
453 452
   #ifndef PIDTEMPBED
454 453
   if(millis() - previous_millis_bed_heater < BED_CHECK_INTERVAL)

Loading…
Cancel
Save