Browse Source

Display chamber with HAS_TEMP_CHAMBER (#15194)

Luu Lac 5 years ago
parent
commit
8bca3fcf2c

+ 2
- 1
Marlin/src/inc/Conditionals_post.h View File

1044
 
1044
 
1045
 // Shorthand for common combinations
1045
 // Shorthand for common combinations
1046
 #define HAS_HEATED_BED (HAS_TEMP_BED && HAS_HEATER_BED)
1046
 #define HAS_HEATED_BED (HAS_TEMP_BED && HAS_HEATER_BED)
1047
-#define HAS_TEMP_SENSOR (HAS_TEMP_HOTEND || HAS_HEATED_BED || HAS_TEMP_CHAMBER)
1047
+#define BED_OR_CHAMBER (HAS_HEATED_BED || HAS_TEMP_CHAMBER)
1048
+#define HAS_TEMP_SENSOR (HAS_TEMP_HOTEND || BED_OR_CHAMBER)
1048
 
1049
 
1049
 // PID heating
1050
 // PID heating
1050
 #if !HAS_HEATED_BED
1051
 #if !HAS_HEATED_BED

+ 4
- 8
Marlin/src/lcd/dogm/dogm_Statusscreen.h View File

671
   #define STATUS_BED_WIDTH 0
671
   #define STATUS_BED_WIDTH 0
672
 #endif
672
 #endif
673
 
673
 
674
-#if !STATUS_CHAMBER_WIDTH && HAS_HEATED_CHAMBER && ((HOTENDS <= 4 && !HAS_HEATED_BED) || (HOTENDS <= 3 && HAS_HEATED_BED))
675
-
674
+#if !STATUS_CHAMBER_WIDTH && HAS_TEMP_CHAMBER && ((HOTENDS <= 4 && !HAS_HEATED_BED) || (HOTENDS <= 3 && HAS_HEATED_BED))
676
   #define STATUS_CHAMBER_WIDTH 21
675
   #define STATUS_CHAMBER_WIDTH 21
677
-
678
   #if STATUS_HEATERS_WIDTH
676
   #if STATUS_HEATERS_WIDTH
679
     #if ENABLED(STATUS_COMBINE_HEATERS)
677
     #if ENABLED(STATUS_COMBINE_HEATERS)
680
       #define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - 2 - (STATUS_CHAMBER_BYTEWIDTH) * 8)
678
       #define STATUS_CHAMBER_X (LCD_PIXEL_WIDTH - 2 - (STATUS_CHAMBER_BYTEWIDTH) * 8)
703
       B00011111,B11111111,B11111000,
701
       B00011111,B11111111,B11111000,
704
       B00011111,B11111111,B11111000
702
       B00011111,B11111111,B11111000
705
     };
703
     };
706
-
707
     const unsigned char status_chamber_on_bmp[] PROGMEM = {
704
     const unsigned char status_chamber_on_bmp[] PROGMEM = {
708
       B00011111,B11111111,B11111000,
705
       B00011111,B11111111,B11111000,
709
       B00010000,B00000000,B00001000,
706
       B00010000,B00000000,B00001000,
741
   #define STATUS_CHAMBER_WIDTH 0
738
   #define STATUS_CHAMBER_WIDTH 0
742
 #endif
739
 #endif
743
 
740
 
744
-#define BED_CHAM (HAS_HEATED_BED || HAS_HEATED_CHAMBER)
745
-#define BED_CHAM_FAN (BED_CHAM || HAS_FAN0)
741
+#define BED_OR_CHAMBER_OR_FAN (BED_OR_CHAMBER || HAS_FAN0)
746
 
742
 
747
 // Can also be overridden in Configuration_adv.h
743
 // Can also be overridden in Configuration_adv.h
748
 // If you can afford it, try the 3-frame fan animation!
744
 // If you can afford it, try the 3-frame fan animation!
749
 // Don't compile in the fan animation with no fan
745
 // Don't compile in the fan animation with no fan
750
-#if !HAS_FAN0 || (HOTENDS == 5 || (HOTENDS == 4 && BED_CHAM) || (ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_CHAMBER))
746
+#if !HAS_FAN0 || (HOTENDS == 5 || (HOTENDS == 4 && BED_OR_CHAMBER) || (ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_CHAMBER))
751
   #undef STATUS_FAN_FRAMES
747
   #undef STATUS_FAN_FRAMES
752
 #elif !STATUS_FAN_FRAMES
748
 #elif !STATUS_FAN_FRAMES
753
   #define STATUS_FAN_FRAMES 2
749
   #define STATUS_FAN_FRAMES 2
1203
     #undef STATUS_LOGO_WIDTH
1199
     #undef STATUS_LOGO_WIDTH
1204
   #endif
1200
   #endif
1205
 
1201
 
1206
-  #if (HOTENDS > 1 && STATUS_LOGO_WIDTH && BED_CHAM_FAN) || ( HOTENDS >= 3 && !BED_CHAM_FAN)
1202
+  #if (HOTENDS > 1 && STATUS_LOGO_WIDTH && BED_OR_CHAMBER_OR_FAN) || (HOTENDS >= 3 && !BED_OR_CHAMBER_OR_FAN)
1207
     #define _STATUS_HEATERS_X(H,S,N) (((LCD_PIXEL_WIDTH - (H * (S + N)) - STATUS_LOGO_WIDTH - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH) / 2) + STATUS_LOGO_WIDTH)
1203
     #define _STATUS_HEATERS_X(H,S,N) (((LCD_PIXEL_WIDTH - (H * (S + N)) - STATUS_LOGO_WIDTH - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH) / 2) + STATUS_LOGO_WIDTH)
1208
     #if STATUS_HOTEND1_WIDTH
1204
     #if STATUS_HOTEND1_WIDTH
1209
       #if HOTENDS > 2
1205
       #if HOTENDS > 2

+ 12
- 6
Marlin/src/lcd/dogm/status_screen_DOGM.cpp View File

65
 
65
 
66
 #define DO_DRAW_LOGO (STATUS_LOGO_WIDTH && ENABLED(CUSTOM_STATUS_SCREEN_IMAGE))
66
 #define DO_DRAW_LOGO (STATUS_LOGO_WIDTH && ENABLED(CUSTOM_STATUS_SCREEN_IMAGE))
67
 #define DO_DRAW_BED (HAS_HEATED_BED && STATUS_BED_WIDTH && HOTENDS <= 4)
67
 #define DO_DRAW_BED (HAS_HEATED_BED && STATUS_BED_WIDTH && HOTENDS <= 4)
68
-#define DO_DRAW_CHAMBER (HAS_HEATED_CHAMBER && STATUS_CHAMBER_WIDTH && HOTENDS <= 4)
68
+#define DO_DRAW_CHAMBER (HAS_TEMP_CHAMBER && STATUS_CHAMBER_WIDTH && HOTENDS <= 4)
69
 #define DO_DRAW_FAN (HAS_FAN0 && STATUS_FAN_WIDTH && HOTENDS <= 4 && defined(STATUS_FAN_FRAMES))
69
 #define DO_DRAW_FAN (HAS_FAN0 && STATUS_FAN_WIDTH && HOTENDS <= 4 && defined(STATUS_FAN_FRAMES))
70
 
70
 
71
 #define ANIM_HOTEND (HOTENDS && ENABLED(STATUS_HOTEND_ANIM))
71
 #define ANIM_HOTEND (HOTENDS && ENABLED(STATUS_HOTEND_ANIM))
252
 	    const float temp = 10 + (millis() >> 8) % CHAMBER_MAXTEMP,
252
 	    const float temp = 10 + (millis() >> 8) % CHAMBER_MAXTEMP,
253
                 target = CHAMBER_MAXTEMP;
253
                 target = CHAMBER_MAXTEMP;
254
     #else
254
     #else
255
-      const float temp = thermalManager.degChamber(),
256
-                target = thermalManager.degTargetChamber();
255
+      const float temp = thermalManager.degChamber();
256
+      #if HAS_HEATED_CHAMBER
257
+        const float target = thermalManager.degTargetChamber();
258
+      #endif
257
     #endif
259
     #endif
260
+
258
     #if !HEATER_IDLE_HANDLER
261
     #if !HEATER_IDLE_HANDLER
259
       UNUSED(blink);
262
       UNUSED(blink);
260
     #endif
263
     #endif
264
+
261
     if (PAGE_UNDER(7)) {
265
     if (PAGE_UNDER(7)) {
262
       #if HEATER_IDLE_HANDLER
266
       #if HEATER_IDLE_HANDLER
263
         const bool is_idle = false, // thermalManager.chamber_idle.timed_out,
267
         const bool is_idle = false, // thermalManager.chamber_idle.timed_out,
265
       #else
269
       #else
266
         constexpr bool dodraw = true;
270
         constexpr bool dodraw = true;
267
       #endif
271
       #endif
268
-      if (dodraw) _draw_centered_temp(target + 0.5, STATUS_CHAMBER_TEXT_X, 7);
272
+      #if HAS_HEATED_CHAMBER
273
+        if (dodraw) _draw_centered_temp(target + 0.5, STATUS_CHAMBER_TEXT_X, 7);
274
+      #endif
269
     }
275
     }
270
     if (PAGE_CONTAINS(28 - INFO_FONT_ASCENT, 28 - 1))
276
     if (PAGE_CONTAINS(28 - INFO_FONT_ASCENT, 28 - 1))
271
       _draw_centered_temp(temp + 0.5f, STATUS_CHAMBER_TEXT_X, 28);
277
       _draw_centered_temp(temp + 0.5f, STATUS_CHAMBER_TEXT_X, 28);
272
   }
278
   }
273
 
279
 
274
-#endif
280
+#endif // DO_DRAW_CHAMBER
275
 
281
 
276
 //
282
 //
277
 // Before homing, blink '123' <-> '???'.
283
 // Before homing, blink '123' <-> '???'.
324
       #if ANIM_BED
330
       #if ANIM_BED
325
         if (thermalManager.isHeatingBed() ^ SHOW_ON_STATE) SBI(new_bits, 7);
331
         if (thermalManager.isHeatingBed() ^ SHOW_ON_STATE) SBI(new_bits, 7);
326
       #endif
332
       #endif
327
-      #if DO_DRAW_CHAMBER
333
+      #if DO_DRAW_CHAMBER && HAS_HEATED_CHAMBER
328
         if (thermalManager.isHeatingChamber() ^ SHOW_ON_STATE) SBI(new_bits, 6);
334
         if (thermalManager.isHeatingChamber() ^ SHOW_ON_STATE) SBI(new_bits, 6);
329
       #endif
335
       #endif
330
       heat_bits = new_bits;
336
       heat_bits = new_bits;

+ 22
- 22
Marlin/src/module/temperature.h View File

623
       start_watching_hotend(ee);
623
       start_watching_hotend(ee);
624
     }
624
     }
625
 
625
 
626
-    #if WATCH_CHAMBER
627
-      static void start_watching_chamber();
628
-    #else
629
-      static inline void start_watching_chamber() {}
630
-    #endif
631
-
632
-    #if HAS_HEATED_CHAMBER
633
-      static void setTargetChamber(const int16_t celsius) {
634
-        temp_chamber.target =
635
-          #ifdef CHAMBER_MAXTEMP
636
-            _MIN(celsius, CHAMBER_MAXTEMP)
637
-          #else
638
-            celsius
639
-          #endif
640
-        ;
641
-        start_watching_chamber();
642
-      }
643
-    #endif // HAS_HEATED_CHAMBER
644
-
645
     FORCE_INLINE static bool isHeatingHotend(const uint8_t e) {
626
     FORCE_INLINE static bool isHeatingHotend(const uint8_t e) {
646
       E_UNUSED();
627
       E_UNUSED();
647
       return temp_hotend[HOTEND_INDEX].target > temp_hotend[HOTEND_INDEX].current;
628
       return temp_hotend[HOTEND_INDEX].target > temp_hotend[HOTEND_INDEX].current;
660
       );
641
       );
661
     #endif
642
     #endif
662
 
643
 
644
+    FORCE_INLINE static bool still_heating(const uint8_t e) {
645
+      return degTargetHotend(e) > TEMP_HYSTERESIS && ABS(degHotend(e) - degTargetHotend(e)) > TEMP_HYSTERESIS;
646
+    }
647
+
663
     #if HAS_HEATED_BED
648
     #if HAS_HEATED_BED
664
 
649
 
665
       #if ENABLED(SHOW_TEMP_ADC_VALUES)
650
       #if ENABLED(SHOW_TEMP_ADC_VALUES)
712
       #endif
697
       #endif
713
     #endif // HAS_TEMP_CHAMBER
698
     #endif // HAS_TEMP_CHAMBER
714
 
699
 
715
-    FORCE_INLINE static bool still_heating(const uint8_t e) {
716
-      return degTargetHotend(e) > TEMP_HYSTERESIS && ABS(degHotend(e) - degTargetHotend(e)) > TEMP_HYSTERESIS;
717
-    }
700
+    #if WATCH_CHAMBER
701
+      static void start_watching_chamber();
702
+    #else
703
+      static inline void start_watching_chamber() {}
704
+    #endif
705
+
706
+    #if HAS_HEATED_CHAMBER
707
+      static void setTargetChamber(const int16_t celsius) {
708
+        temp_chamber.target =
709
+          #ifdef CHAMBER_MAXTEMP
710
+            _MIN(celsius, CHAMBER_MAXTEMP)
711
+          #else
712
+            celsius
713
+          #endif
714
+        ;
715
+        start_watching_chamber();
716
+      }
717
+    #endif // HAS_HEATED_CHAMBER
718
 
718
 
719
     /**
719
     /**
720
      * The software PWM power for a heater
720
      * The software PWM power for a heater

Loading…
Cancel
Save