Quellcode durchsuchen

Use blink to show more info on LCD (#12256)

MasterPIC vor 6 Jahren
Ursprung
Commit
6e041b9c61

+ 27
- 8
Marlin/src/lcd/HD44780/ultralcd_impl_HD44780.cpp Datei anzeigen

@@ -848,19 +848,38 @@ FORCE_INLINE void _draw_status_message(const bool blink) {
848 848
       lcd_put_u8str(itostr3(feedrate_percentage));
849 849
       lcd_put_wchar('%');
850 850
 
851
-      #if LCD_WIDTH >= 20 && HAS_PRINT_PROGRESS
852
-        lcd_moveto(7, 2);
853
-        _draw_print_progress();
854
-      #endif
855
-
856 851
       char buffer[14];
857 852
       duration_t elapsed = print_job_timer.duration();
858
-      uint8_t len = elapsed.toDigital(buffer);
859
-
860
-      lcd_moveto(LCD_WIDTH - len - 1, 2);
853
+      const uint8_t len = elapsed.toDigital(buffer),
854
+                    timepos = LCD_WIDTH - len - 1;
855
+      lcd_moveto(timepos, 2);
861 856
       lcd_put_wchar(LCD_CLOCK_CHAR);
862 857
       lcd_put_u8str(buffer);
863 858
 
859
+      #if LCD_WIDTH >= 20
860
+        lcd_moveto(timepos - 7, 2);
861
+        #if HAS_PRINT_PROGRESS
862
+          _draw_print_progress();
863
+        #else
864
+          #if HAS_FAN0
865
+            char c;
866
+            int per;
867
+            if (blink) {
868
+              c = 'F';
869
+              per = ((int(fan_speed[0]) + 1) * 100) / 256;
870
+            }
871
+            else
872
+          #endif
873
+            {
874
+              c = 'E';
875
+              per = planner.flow_percentage[0];
876
+            }
877
+          lcd_put_wchar(c);
878
+          lcd_put_u8str(itostr3(per));
879
+          lcd_put_wchar('%');
880
+        #endif
881
+      #endif
882
+
864 883
     #endif // LCD_HEIGHT > 3
865 884
 
866 885
     // ========= Last Line ========

+ 1
- 1
Marlin/src/lcd/dogm/status_screen_DOGM.cpp Datei anzeigen

@@ -282,7 +282,7 @@ void lcd_impl_status_screen_0() {
282 282
     #if HAS_FAN0
283 283
       if (PAGE_CONTAINS(STATUS_SCREEN_FAN_TEXT_Y - 7, STATUS_SCREEN_FAN_TEXT_Y)) {
284 284
         // Fan
285
-        const uint16_t per = (((uint16_t)fan_speed[0] + 1) * 100) / 256;
285
+        const int per = ((int(fan_speed[0]) + 1) * 100) / 256;
286 286
         if (per) {
287 287
           lcd_moveto(STATUS_SCREEN_FAN_TEXT_X, STATUS_SCREEN_FAN_TEXT_Y);
288 288
           lcd_put_u8str(itostr3(per));

Laden…
Abbrechen
Speichern