|
@@ -166,8 +166,14 @@ typedef struct {
|
166
|
166
|
|
167
|
167
|
select_t select_page{0}, select_file{0}, select_print{0}, select_prepare{0}
|
168
|
168
|
, select_control{0}, select_axis{0}, select_temp{0}, select_motion{0}, select_tune{0}
|
169
|
|
- , select_advset{0}, select_PLA{0}, select_ABS{0}
|
170
|
|
- , select_speed{0}, select_acc{0}, select_jerk{0}, select_step{0}, select_item{0};
|
|
169
|
+ , select_advset{0}, select_speed{0}, select_acc{0}, select_jerk{0}, select_step{0}, select_item{0};
|
|
170
|
+
|
|
171
|
+#if HAS_PREHEAT
|
|
172
|
+ select_t select_PLA{0};
|
|
173
|
+ #if PREHEAT_COUNT > 1
|
|
174
|
+ select_t select_ABS{0};
|
|
175
|
+ #endif
|
|
176
|
+#endif
|
171
|
177
|
|
172
|
178
|
uint8_t index_file = MROWS,
|
173
|
179
|
index_prepare = MROWS,
|
|
@@ -492,8 +498,8 @@ inline bool Apply_Encoder(const EncoderState &encoder_diffState, T &valref) {
|
492
|
498
|
#define PREPARE_CASE_DISA 2
|
493
|
499
|
#define PREPARE_CASE_HOME 3
|
494
|
500
|
#define PREPARE_CASE_ZOFF (PREPARE_CASE_HOME + ENABLED(HAS_ZOFFSET_ITEM))
|
495
|
|
-#define PREPARE_CASE_PLA (PREPARE_CASE_ZOFF + ENABLED(HAS_HOTEND))
|
496
|
|
-#define PREPARE_CASE_ABS (PREPARE_CASE_PLA + ENABLED(HAS_HOTEND))
|
|
501
|
+#define PREPARE_CASE_PLA (PREPARE_CASE_ZOFF + ENABLED(HAS_PREHEAT))
|
|
502
|
+#define PREPARE_CASE_ABS (PREPARE_CASE_PLA + (TERN0(HAS_PREHEAT, PREHEAT_COUNT > 1)))
|
497
|
503
|
#define PREPARE_CASE_COOL (PREPARE_CASE_ABS + EITHER(HAS_HOTEND, HAS_HEATED_BED))
|
498
|
504
|
#define PREPARE_CASE_LANG (PREPARE_CASE_COOL + 1)
|
499
|
505
|
#define PREPARE_CASE_TOTAL PREPARE_CASE_LANG
|
|
@@ -517,8 +523,8 @@ inline bool Apply_Encoder(const EncoderState &encoder_diffState, T &valref) {
|
517
|
523
|
#define TEMP_CASE_TEMP (0 + ENABLED(HAS_HOTEND))
|
518
|
524
|
#define TEMP_CASE_BED (TEMP_CASE_TEMP + ENABLED(HAS_HEATED_BED))
|
519
|
525
|
#define TEMP_CASE_FAN (TEMP_CASE_BED + ENABLED(HAS_FAN))
|
520
|
|
-#define TEMP_CASE_PLA (TEMP_CASE_FAN + ENABLED(HAS_HOTEND))
|
521
|
|
-#define TEMP_CASE_ABS (TEMP_CASE_PLA + ENABLED(HAS_HOTEND))
|
|
526
|
+#define TEMP_CASE_PLA (TEMP_CASE_FAN + ENABLED(HAS_PREHEAT))
|
|
527
|
+#define TEMP_CASE_ABS (TEMP_CASE_PLA + (TERN0(HAS_PREHEAT, PREHEAT_COUNT > 1)))
|
522
|
528
|
#define TEMP_CASE_TOTAL TEMP_CASE_ABS
|
523
|
529
|
|
524
|
530
|
#define PREHEAT_CASE_TEMP (0 + ENABLED(HAS_HOTEND))
|
|
@@ -785,6 +791,8 @@ void Draw_Prepare_Menu() {
|
785
|
791
|
#if PREHEAT_COUNT > 1
|
786
|
792
|
if (PVISI(PREPARE_CASE_ABS)) Item_Prepare_ABS(PSCROL(PREPARE_CASE_ABS)); // Preheat ABS
|
787
|
793
|
#endif
|
|
794
|
+ #endif
|
|
795
|
+ #if HAS_HOTEND || HAS_HEATED_BED
|
788
|
796
|
if (PVISI(PREPARE_CASE_COOL)) Item_Prepare_Cool(PSCROL(PREPARE_CASE_COOL)); // Cooldown
|
789
|
797
|
#endif
|
790
|
798
|
if (PVISI(PREPARE_CASE_LANG)) Item_Prepare_Lang(PSCROL(PREPARE_CASE_LANG)); // Language CN/EN
|
|
@@ -2664,10 +2672,10 @@ void HMI_Prepare() {
|
2664
|
2672
|
// Draw "More" icon for sub-menus
|
2665
|
2673
|
if (index_prepare < 7) Draw_More_Icon(MROWS - index_prepare + 1);
|
2666
|
2674
|
|
2667
|
|
- #if HAS_HOTEND
|
|
2675
|
+ #if PREHEAT_COUNT > 1
|
2668
|
2676
|
if (index_prepare == PREPARE_CASE_ABS) Item_Prepare_ABS(MROWS);
|
2669
|
2677
|
#endif
|
2670
|
|
- #if HAS_PREHEAT
|
|
2678
|
+ #if HAS_HOTEND || HAS_HEATED_BED
|
2671
|
2679
|
if (index_prepare == PREPARE_CASE_COOL) Item_Prepare_Cool(MROWS);
|
2672
|
2680
|
#endif
|
2673
|
2681
|
if (index_prepare == PREPARE_CASE_LANG) Item_Prepare_Lang(MROWS);
|
|
@@ -2743,16 +2751,13 @@ void HMI_Prepare() {
|
2743
|
2751
|
break;
|
2744
|
2752
|
#endif
|
2745
|
2753
|
#if HAS_PREHEAT
|
2746
|
|
- case PREPARE_CASE_PLA:
|
2747
|
|
- TERN_(HAS_HOTEND, thermalManager.setTargetHotend(ui.material_preset[0].hotend_temp, 0));
|
2748
|
|
- TERN_(HAS_HEATED_BED, thermalManager.setTargetBed(ui.material_preset[0].bed_temp));
|
2749
|
|
- TERN_(HAS_FAN, thermalManager.set_fan_speed(0, ui.material_preset[0].fan_speed));
|
2750
|
|
- break;
|
2751
|
|
- case PREPARE_CASE_ABS:
|
2752
|
|
- TERN_(HAS_HOTEND, thermalManager.setTargetHotend(ui.material_preset[1].hotend_temp, 0));
|
2753
|
|
- TERN_(HAS_HEATED_BED, thermalManager.setTargetBed(ui.material_preset[1].bed_temp));
|
2754
|
|
- TERN_(HAS_FAN, thermalManager.set_fan_speed(0, ui.material_preset[1].fan_speed));
|
2755
|
|
- break;
|
|
2754
|
+ case PREPARE_CASE_PLA: ui.preheat_all(0); break;
|
|
2755
|
+ #if PREHEAT_COUNT > 1
|
|
2756
|
+ case PREPARE_CASE_ABS: ui.preheat_all(1); break;
|
|
2757
|
+ #endif
|
|
2758
|
+ #endif
|
|
2759
|
+
|
|
2760
|
+ #if HAS_HOTEND || HAS_HEATED_BED
|
2756
|
2761
|
case PREPARE_CASE_COOL:
|
2757
|
2762
|
TERN_(HAS_FAN, thermalManager.zero_fan_speeds());
|
2758
|
2763
|
#if HAS_HOTEND || HAS_HEATED_BED
|
|
@@ -2760,6 +2765,7 @@ void HMI_Prepare() {
|
2760
|
2765
|
#endif
|
2761
|
2766
|
break;
|
2762
|
2767
|
#endif
|
|
2768
|
+
|
2763
|
2769
|
case PREPARE_CASE_LANG:
|
2764
|
2770
|
HMI_ToggleLanguage();
|
2765
|
2771
|
Draw_Prepare_Menu();
|
|
@@ -2784,9 +2790,11 @@ void Draw_Temperature_Menu() {
|
2784
|
2790
|
#if HAS_FAN
|
2785
|
2791
|
Item_AreaCopy(115, 134, 170, 146, TEMP_CASE_FAN);
|
2786
|
2792
|
#endif
|
2787
|
|
- #if HAS_HOTEND
|
|
2793
|
+ #if HAS_PREHEAT
|
2788
|
2794
|
Item_AreaCopy(100, 89, 178, 101, TEMP_CASE_PLA);
|
2789
|
|
- Item_AreaCopy(180, 89, 260, 100, TEMP_CASE_ABS);
|
|
2795
|
+ #if PREHEAT_COUNT > 1
|
|
2796
|
+ Item_AreaCopy(180, 89, 260, 100, TEMP_CASE_ABS);
|
|
2797
|
+ #endif
|
2790
|
2798
|
#endif
|
2791
|
2799
|
}
|
2792
|
2800
|
else {
|
|
@@ -2805,30 +2813,33 @@ void Draw_Temperature_Menu() {
|
2805
|
2813
|
#if HAS_FAN
|
2806
|
2814
|
DWIN_Draw_Label(TEMP_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED));
|
2807
|
2815
|
#endif
|
2808
|
|
- #if HAS_HOTEND
|
|
2816
|
+ #if HAS_PREHEAT
|
2809
|
2817
|
DWIN_Draw_Label(TEMP_CASE_PLA, F(PREHEAT_1_LABEL " Preheat Settings"));
|
2810
|
|
- DWIN_Draw_Label(TEMP_CASE_ABS, F(PREHEAT_2_LABEL " Preheat Settings"));
|
|
2818
|
+ #if PREHEAT_COUNT > 1
|
|
2819
|
+ DWIN_Draw_Label(TEMP_CASE_ABS, F(PREHEAT_2_LABEL " Preheat Settings"));
|
|
2820
|
+ #endif
|
2811
|
2821
|
#endif
|
2812
|
2822
|
#else
|
2813
|
2823
|
#if HAS_HOTEND
|
2814
|
|
- Item_AreaCopy(197, 104, 238, 114, TEMP_CASE_TEMP); // "Nozzle"
|
2815
|
|
- Item_AreaCopy(1, 89, 83, 101, TEMP_CASE_TEMP, 44); // "Temperature"
|
|
2824
|
+ Item_AreaCopy(197, 104, 238, 114, TEMP_CASE_TEMP); // "Nozzle"
|
|
2825
|
+ Item_AreaCopy(1, 89, 83, 101, TEMP_CASE_TEMP, 44); // "Temperature"
|
2816
|
2826
|
#endif
|
2817
|
2827
|
#if HAS_HEATED_BED
|
2818
|
|
- Item_AreaCopy(240, 104, 264, 114, TEMP_CASE_BED); // "Bed"
|
2819
|
|
- Item_AreaCopy(1, 89, 83, 101, TEMP_CASE_BED, 27); // "Temperature"
|
|
2828
|
+ Item_AreaCopy(240, 104, 264, 114, TEMP_CASE_BED); // "Bed"
|
|
2829
|
+ Item_AreaCopy(1, 89, 83, 101, TEMP_CASE_BED, 27); // "Temperature"
|
2820
|
2830
|
#endif
|
2821
|
2831
|
#if HAS_FAN
|
2822
|
|
- Item_AreaCopy( 1, 119, 61, 132, TEMP_CASE_FAN); // "Fan speed"
|
|
2832
|
+ Item_AreaCopy( 1, 119, 61, 132, TEMP_CASE_FAN); // "Fan speed"
|
2823
|
2833
|
#endif
|
2824
|
|
- #if HAS_HOTEND
|
2825
|
|
- Item_AreaCopy(107, 76, 156, 86, TEMP_CASE_PLA); // "Preheat"
|
2826
|
|
- say_pla_en(52, TEMP_CASE_PLA); // "PLA"
|
2827
|
|
- Item_AreaCopy(150, 135, 202, 148, TEMP_CASE_PLA, 79); // "Settings"
|
2828
|
|
-
|
2829
|
|
- Item_AreaCopy(107, 76, 156, 86, TEMP_CASE_ABS); // "Preheat"
|
2830
|
|
- say_abs_en(52, TEMP_CASE_ABS); // "ABS"
|
2831
|
|
- Item_AreaCopy(150, 135, 202, 148, TEMP_CASE_ABS, 81); // "Settings"
|
|
2834
|
+ #if HAS_PREHEAT
|
|
2835
|
+ Item_AreaCopy(107, 76, 156, 86, TEMP_CASE_PLA); // "Preheat"
|
|
2836
|
+ say_pla_en(52, TEMP_CASE_PLA); // "PLA"
|
|
2837
|
+ Item_AreaCopy(150, 135, 202, 148, TEMP_CASE_PLA, 79); // "Settings"
|
|
2838
|
+ #if PREHEAT_COUNT > 1
|
|
2839
|
+ Item_AreaCopy(107, 76, 156, 86, TEMP_CASE_ABS); // "Preheat"
|
|
2840
|
+ say_abs_en(52, TEMP_CASE_ABS); // "ABS"
|
|
2841
|
+ Item_AreaCopy(150, 135, 202, 148, TEMP_CASE_ABS, 81); // "Settings"
|
|
2842
|
+ #endif
|
2832
|
2843
|
#endif
|
2833
|
2844
|
#endif
|
2834
|
2845
|
}
|
|
@@ -2851,12 +2862,12 @@ void Draw_Temperature_Menu() {
|
2851
|
2862
|
_TMENU_ICON(TEMP_CASE_FAN);
|
2852
|
2863
|
Draw_Edit_Integer3(i, thermalManager.fan_speed[0]);
|
2853
|
2864
|
#endif
|
2854
|
|
- #if HAS_HOTEND
|
|
2865
|
+ #if HAS_PREHEAT
|
2855
|
2866
|
// PLA/ABS items have submenus
|
2856
|
|
- _TMENU_ICON(TEMP_CASE_PLA);
|
2857
|
|
- Draw_More_Icon(i);
|
2858
|
|
- _TMENU_ICON(TEMP_CASE_ABS);
|
2859
|
|
- Draw_More_Icon(i);
|
|
2867
|
+ _TMENU_ICON(TEMP_CASE_PLA); Draw_More_Icon(i);
|
|
2868
|
+ #if PREHEAT_COUNT > 1
|
|
2869
|
+ _TMENU_ICON(TEMP_CASE_ABS); Draw_More_Icon(i);
|
|
2870
|
+ #endif
|
2860
|
2871
|
#endif
|
2861
|
2872
|
}
|
2862
|
2873
|
|
|
@@ -3076,6 +3087,7 @@ void HMI_Temperature() {
|
3076
|
3087
|
EncoderRate.enabled = true;
|
3077
|
3088
|
break;
|
3078
|
3089
|
#endif
|
|
3090
|
+
|
3079
|
3091
|
#if HAS_PREHEAT
|
3080
|
3092
|
case TEMP_CASE_PLA: {
|
3081
|
3093
|
checkkey = PLAPreheat;
|
|
@@ -3153,7 +3165,8 @@ void HMI_Temperature() {
|
3153
|
3165
|
Draw_Menu_Line(++i, ICON_WriteEEPROM);
|
3154
|
3166
|
#endif
|
3155
|
3167
|
} break;
|
3156
|
|
- #endif
|
|
3168
|
+ #endif // HAS_PREHEAT
|
|
3169
|
+
|
3157
|
3170
|
#if PREHEAT_COUNT > 1
|
3158
|
3171
|
case TEMP_CASE_ABS: { // ABS preheat setting
|
3159
|
3172
|
checkkey = ABSPreheat;
|
|
@@ -3236,7 +3249,7 @@ void HMI_Temperature() {
|
3236
|
3249
|
|
3237
|
3250
|
} break;
|
3238
|
3251
|
|
3239
|
|
- #endif // HAS_HOTEND
|
|
3252
|
+ #endif // PREHEAT_COUNT > 1
|
3240
|
3253
|
}
|
3241
|
3254
|
}
|
3242
|
3255
|
DWIN_UpdateLCD();
|
|
@@ -3579,14 +3592,12 @@ void HMI_AdvSet() {
|
3579
|
3592
|
|
3580
|
3593
|
#if HAS_HOTEND
|
3581
|
3594
|
case ADVSET_CASE_HEPID:
|
3582
|
|
- thermalManager.setTargetHotend(ui.material_preset[0].hotend_temp, 0);
|
3583
|
3595
|
thermalManager.PID_autotune(ui.material_preset[0].hotend_temp, H_E0, 10, true);
|
3584
|
3596
|
break;
|
3585
|
3597
|
#endif
|
3586
|
3598
|
|
3587
|
3599
|
#if HAS_HEATED_BED
|
3588
|
3600
|
case ADVSET_CASE_BEDPID:
|
3589
|
|
- thermalManager.setTargetBed(ui.material_preset[0].bed_temp);
|
3590
|
3601
|
thermalManager.PID_autotune(ui.material_preset[0].bed_temp, H_BED, 10, true);
|
3591
|
3602
|
break;
|
3592
|
3603
|
#endif
|
|
@@ -3881,63 +3892,65 @@ void HMI_Tune() {
|
3881
|
3892
|
DWIN_UpdateLCD();
|
3882
|
3893
|
}
|
3883
|
3894
|
|
3884
|
|
- // ABS Preheat
|
3885
|
|
- void HMI_ABSPreheatSetting() {
|
3886
|
|
- EncoderState encoder_diffState = get_encoder_state();
|
3887
|
|
- if (encoder_diffState == ENCODER_DIFF_NO) return;
|
3888
|
|
-
|
3889
|
|
- // Avoid flicker by updating only the previous menu
|
3890
|
|
- if (encoder_diffState == ENCODER_DIFF_CW) {
|
3891
|
|
- if (select_ABS.inc(1 + PREHEAT_CASE_TOTAL)) Move_Highlight(1, select_ABS.now);
|
3892
|
|
- }
|
3893
|
|
- else if (encoder_diffState == ENCODER_DIFF_CCW) {
|
3894
|
|
- if (select_ABS.dec()) Move_Highlight(-1, select_ABS.now);
|
3895
|
|
- }
|
3896
|
|
- else if (encoder_diffState == ENCODER_DIFF_ENTER) {
|
3897
|
|
- switch (select_ABS.now) {
|
3898
|
|
- case CASE_BACK:
|
3899
|
|
- checkkey = TemperatureID;
|
3900
|
|
- select_temp.now = TEMP_CASE_ABS;
|
3901
|
|
- HMI_ValueStruct.show_mode = -1;
|
3902
|
|
- Draw_Temperature_Menu();
|
3903
|
|
- break;
|
3904
|
|
- #if HAS_HOTEND
|
3905
|
|
- case PREHEAT_CASE_TEMP:
|
3906
|
|
- checkkey = ETemp;
|
3907
|
|
- HMI_ValueStruct.E_Temp = ui.material_preset[1].hotend_temp;
|
3908
|
|
- Draw_Edit_Integer3(PREHEAT_CASE_TEMP, ui.material_preset[1].hotend_temp, true);
|
3909
|
|
- EncoderRate.enabled = true;
|
3910
|
|
- break;
|
3911
|
|
- #endif
|
3912
|
|
- #if HAS_HEATED_BED
|
3913
|
|
- case PREHEAT_CASE_BED:
|
3914
|
|
- checkkey = BedTemp;
|
3915
|
|
- HMI_ValueStruct.Bed_Temp = ui.material_preset[1].bed_temp;
|
3916
|
|
- Draw_Edit_Integer3(PREHEAT_CASE_BED, ui.material_preset[1].bed_temp, true);
|
3917
|
|
- EncoderRate.enabled = true;
|
3918
|
|
- break;
|
3919
|
|
- #endif
|
3920
|
|
- #if HAS_FAN
|
3921
|
|
- case PREHEAT_CASE_FAN:
|
3922
|
|
- checkkey = FanSpeed;
|
3923
|
|
- HMI_ValueStruct.Fan_speed = ui.material_preset[1].fan_speed;
|
3924
|
|
- Draw_Edit_Integer3(PREHEAT_CASE_FAN, ui.material_preset[1].fan_speed, true);
|
3925
|
|
- EncoderRate.enabled = true;
|
|
3895
|
+ #if PREHEAT_COUNT > 1
|
|
3896
|
+ // ABS Preheat
|
|
3897
|
+ void HMI_ABSPreheatSetting() {
|
|
3898
|
+ EncoderState encoder_diffState = get_encoder_state();
|
|
3899
|
+ if (encoder_diffState == ENCODER_DIFF_NO) return;
|
|
3900
|
+
|
|
3901
|
+ // Avoid flicker by updating only the previous menu
|
|
3902
|
+ if (encoder_diffState == ENCODER_DIFF_CW) {
|
|
3903
|
+ if (select_ABS.inc(1 + PREHEAT_CASE_TOTAL)) Move_Highlight(1, select_ABS.now);
|
|
3904
|
+ }
|
|
3905
|
+ else if (encoder_diffState == ENCODER_DIFF_CCW) {
|
|
3906
|
+ if (select_ABS.dec()) Move_Highlight(-1, select_ABS.now);
|
|
3907
|
+ }
|
|
3908
|
+ else if (encoder_diffState == ENCODER_DIFF_ENTER) {
|
|
3909
|
+ switch (select_ABS.now) {
|
|
3910
|
+ case CASE_BACK:
|
|
3911
|
+ checkkey = TemperatureID;
|
|
3912
|
+ select_temp.now = TEMP_CASE_ABS;
|
|
3913
|
+ HMI_ValueStruct.show_mode = -1;
|
|
3914
|
+ Draw_Temperature_Menu();
|
3926
|
3915
|
break;
|
3927
|
|
- #endif
|
3928
|
|
- #if ENABLED(EEPROM_SETTINGS)
|
3929
|
|
- case PREHEAT_CASE_SAVE: {
|
3930
|
|
- const bool success = settings.save();
|
3931
|
|
- HMI_AudioFeedback(success);
|
3932
|
|
- } break;
|
3933
|
|
- #endif
|
3934
|
|
- default: break;
|
|
3916
|
+ #if HAS_HOTEND
|
|
3917
|
+ case PREHEAT_CASE_TEMP:
|
|
3918
|
+ checkkey = ETemp;
|
|
3919
|
+ HMI_ValueStruct.E_Temp = ui.material_preset[1].hotend_temp;
|
|
3920
|
+ Draw_Edit_Integer3(PREHEAT_CASE_TEMP, ui.material_preset[1].hotend_temp, true);
|
|
3921
|
+ EncoderRate.enabled = true;
|
|
3922
|
+ break;
|
|
3923
|
+ #endif
|
|
3924
|
+ #if HAS_HEATED_BED
|
|
3925
|
+ case PREHEAT_CASE_BED:
|
|
3926
|
+ checkkey = BedTemp;
|
|
3927
|
+ HMI_ValueStruct.Bed_Temp = ui.material_preset[1].bed_temp;
|
|
3928
|
+ Draw_Edit_Integer3(PREHEAT_CASE_BED, ui.material_preset[1].bed_temp, true);
|
|
3929
|
+ EncoderRate.enabled = true;
|
|
3930
|
+ break;
|
|
3931
|
+ #endif
|
|
3932
|
+ #if HAS_FAN
|
|
3933
|
+ case PREHEAT_CASE_FAN:
|
|
3934
|
+ checkkey = FanSpeed;
|
|
3935
|
+ HMI_ValueStruct.Fan_speed = ui.material_preset[1].fan_speed;
|
|
3936
|
+ Draw_Edit_Integer3(PREHEAT_CASE_FAN, ui.material_preset[1].fan_speed, true);
|
|
3937
|
+ EncoderRate.enabled = true;
|
|
3938
|
+ break;
|
|
3939
|
+ #endif
|
|
3940
|
+ #if ENABLED(EEPROM_SETTINGS)
|
|
3941
|
+ case PREHEAT_CASE_SAVE: {
|
|
3942
|
+ const bool success = settings.save();
|
|
3943
|
+ HMI_AudioFeedback(success);
|
|
3944
|
+ } break;
|
|
3945
|
+ #endif
|
|
3946
|
+ default: break;
|
|
3947
|
+ }
|
3935
|
3948
|
}
|
|
3949
|
+ DWIN_UpdateLCD();
|
3936
|
3950
|
}
|
3937
|
|
- DWIN_UpdateLCD();
|
3938
|
|
- }
|
|
3951
|
+ #endif // PREHEAT_COUNT > 1
|
3939
|
3952
|
|
3940
|
|
-#endif
|
|
3953
|
+#endif // HAS_PREHEAT
|
3941
|
3954
|
|
3942
|
3955
|
// Max Speed
|
3943
|
3956
|
void HMI_MaxSpeed() {
|
|
@@ -4241,7 +4254,9 @@ void DWIN_HandleScreen() {
|
4241
|
4254
|
case Tune: HMI_Tune(); break;
|
4242
|
4255
|
#if HAS_PREHEAT
|
4243
|
4256
|
case PLAPreheat: HMI_PLAPreheatSetting(); break;
|
4244
|
|
- case ABSPreheat: HMI_ABSPreheatSetting(); break;
|
|
4257
|
+ #if PREHEAT_COUNT > 1
|
|
4258
|
+ case ABSPreheat: HMI_ABSPreheatSetting(); break;
|
|
4259
|
+ #endif
|
4245
|
4260
|
#endif
|
4246
|
4261
|
case MaxSpeed: HMI_MaxSpeed(); break;
|
4247
|
4262
|
case MaxAcceleration: HMI_MaxAcceleration(); break;
|