Przeglądaj źródła

Fix Ender 3 V2 DWIN manual move (#20837)

Scott Lahteine 4 lat temu
rodzic
commit
e9425d711d
No account linked to committer's email address
1 zmienionych plików z 31 dodań i 32 usunięć
  1. 31
    32
      Marlin/src/lcd/dwin/e3v2/dwin.cpp

+ 31
- 32
Marlin/src/lcd/dwin/e3v2/dwin.cpp Wyświetl plik

@@ -132,8 +132,9 @@
132 132
 
133 133
 #define FEEDRATE_E      (60)
134 134
 
135
-// Mininum unit (0.1) : multiple (10)
136
-#define MINUNITMULT     10
135
+// Minimum unit (0.1) : multiple (10)
136
+#define UNITFDIGITS 1
137
+#define MINUNITMULT pow(10, UNITFDIGITS)
137 138
 
138 139
 #define ENCODER_WAIT    20
139 140
 #define DWIN_SCROLL_UPDATE_INTERVAL 2000
@@ -1171,8 +1172,8 @@ void HMI_Move_X() {
1171 1172
     }
1172 1173
     NOLESS(HMI_ValueStruct.Move_X_scale, (X_MIN_POS) * MINUNITMULT);
1173 1174
     NOMORE(HMI_ValueStruct.Move_X_scale, (X_MAX_POS) * MINUNITMULT);
1174
-    current_position.x = HMI_ValueStruct.Move_X_scale / 10;
1175
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 216, MBASE(1), HMI_ValueStruct.Move_X_scale);
1175
+    current_position.x = HMI_ValueStruct.Move_X_scale / MINUNITMULT;
1176
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 216, MBASE(1), HMI_ValueStruct.Move_X_scale);
1176 1177
     DWIN_UpdateLCD();
1177 1178
   }
1178 1179
 }
@@ -1194,8 +1195,8 @@ void HMI_Move_Y() {
1194 1195
     }
1195 1196
     NOLESS(HMI_ValueStruct.Move_Y_scale, (Y_MIN_POS) * MINUNITMULT);
1196 1197
     NOMORE(HMI_ValueStruct.Move_Y_scale, (Y_MAX_POS) * MINUNITMULT);
1197
-    current_position.y = HMI_ValueStruct.Move_Y_scale / 10;
1198
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 216, MBASE(2), HMI_ValueStruct.Move_Y_scale);
1198
+    current_position.y = HMI_ValueStruct.Move_Y_scale / MINUNITMULT;
1199
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 216, MBASE(2), HMI_ValueStruct.Move_Y_scale);
1199 1200
     DWIN_UpdateLCD();
1200 1201
   }
1201 1202
 }
@@ -1206,7 +1207,7 @@ void HMI_Move_Z() {
1206 1207
     if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_Z_scale)) {
1207 1208
       checkkey = AxisMove;
1208 1209
       EncoderRate.enabled = false;
1209
-      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(3), HMI_ValueStruct.Move_Z_scale);
1210
+      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(3), HMI_ValueStruct.Move_Z_scale);
1210 1211
       if (!planner.is_full()) {
1211 1212
         // Wait for planner moves to finish!
1212 1213
         planner.synchronize();
@@ -1217,8 +1218,8 @@ void HMI_Move_Z() {
1217 1218
     }
1218 1219
     NOLESS(HMI_ValueStruct.Move_Z_scale, Z_MIN_POS * MINUNITMULT);
1219 1220
     NOMORE(HMI_ValueStruct.Move_Z_scale, Z_MAX_POS * MINUNITMULT);
1220
-    current_position.z = HMI_ValueStruct.Move_Z_scale / 10;
1221
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 216, MBASE(3), HMI_ValueStruct.Move_Z_scale);
1221
+    current_position.z = HMI_ValueStruct.Move_Z_scale / MINUNITMULT;
1222
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 216, MBASE(3), HMI_ValueStruct.Move_Z_scale);
1222 1223
     DWIN_UpdateLCD();
1223 1224
   }
1224 1225
 }
@@ -1233,7 +1234,7 @@ void HMI_Move_Z() {
1233 1234
         checkkey = AxisMove;
1234 1235
         EncoderRate.enabled = false;
1235 1236
         last_E_scale = HMI_ValueStruct.Move_E_scale;
1236
-        DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scale);
1237
+        DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(4), HMI_ValueStruct.Move_E_scale);
1237 1238
         if (!planner.is_full()) {
1238 1239
           planner.synchronize(); // Wait for planner moves to finish!
1239 1240
           planner.buffer_line(current_position, MMM_TO_MMS(FEEDRATE_E), active_extruder);
@@ -1245,8 +1246,8 @@ void HMI_Move_Z() {
1245 1246
         HMI_ValueStruct.Move_E_scale = last_E_scale + (EXTRUDE_MAXLENGTH) * MINUNITMULT;
1246 1247
       else if ((last_E_scale - HMI_ValueStruct.Move_E_scale) > (EXTRUDE_MAXLENGTH) * MINUNITMULT)
1247 1248
         HMI_ValueStruct.Move_E_scale = last_E_scale - (EXTRUDE_MAXLENGTH) * MINUNITMULT;
1248
-      current_position.e = HMI_ValueStruct.Move_E_scale / 10;
1249
-      DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scale);
1249
+      current_position.e = HMI_ValueStruct.Move_E_scale / MINUNITMULT;
1250
+      DWIN_Draw_Signed_Float(font8x16, Select_Color, 3, UNITFDIGITS, 216, MBASE(4), HMI_ValueStruct.Move_E_scale);
1250 1251
       DWIN_UpdateLCD();
1251 1252
     }
1252 1253
   }
@@ -1503,7 +1504,7 @@ void HMI_MaxAccelerationXYZE() {
1503 1504
         NOMORE(HMI_ValueStruct.Max_Jerk, default_max_jerk[HMI_flag.jerk_axis] * 2 * MINUNITMULT);
1504 1505
       NOLESS(HMI_ValueStruct.Max_Jerk, (MIN_MAXJERK) * MINUNITMULT);
1505 1506
       // MaxJerk value
1506
-      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk);
1507
+      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk);
1507 1508
     }
1508 1509
   }
1509 1510
 
@@ -1525,7 +1526,7 @@ void HMI_StepXYZE() {
1525 1526
       NOMORE(HMI_ValueStruct.Max_Step, 999.9 * MINUNITMULT);
1526 1527
     NOLESS(HMI_ValueStruct.Max_Step, MIN_STEP);
1527 1528
     // Step value
1528
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 210, MBASE(select_step.now), HMI_ValueStruct.Max_Step);
1529
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_step.now), HMI_ValueStruct.Max_Step);
1529 1530
   }
1530 1531
 }
1531 1532
 
@@ -2317,13 +2318,12 @@ void HMI_Prepare() {
2317 2318
         select_axis.reset();
2318 2319
         Draw_Move_Menu();
2319 2320
 
2320
-        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(1), current_position.x * MINUNITMULT);
2321
-        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(2), current_position.y * MINUNITMULT);
2322
-        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(3), current_position.z * MINUNITMULT);
2321
+        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(1), current_position.x * MINUNITMULT);
2322
+        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(2), current_position.y * MINUNITMULT);
2323
+        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 216, MBASE(3), current_position.z * MINUNITMULT);
2323 2324
         #if HAS_HOTEND
2324
-          current_position.e = HMI_ValueStruct.Move_E_scale = 0.0;
2325
-          sync_plan_position_e();
2326
-          DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(4), 0.0);
2325
+          HMI_ValueStruct.Move_E_scale = current_position.e * MINUNITMULT;
2326
+          DWIN_Draw_Signed_Float(font8x16, Color_Bg_Black, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scale);
2327 2327
         #endif
2328 2328
         break;
2329 2329
       case PREPARE_CASE_DISA: // Disable steppers
@@ -2573,8 +2573,7 @@ void HMI_AxisMove() {
2573 2573
     if (HMI_flag.ETempTooLow_flag) {
2574 2574
       if (encoder_diffState == ENCODER_DIFF_ENTER) {
2575 2575
         HMI_flag.ETempTooLow_flag = false;
2576
-        current_position.e = HMI_ValueStruct.Move_E_scale = 0;
2577
-        sync_plan_position_e();
2576
+        HMI_ValueStruct.Move_E_scale = current_position.e * MINUNITMULT;
2578 2577
         Draw_Move_Menu();
2579 2578
         DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(1), HMI_ValueStruct.Move_X_scale);
2580 2579
         DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(2), HMI_ValueStruct.Move_Y_scale);
@@ -3020,11 +3019,11 @@ inline void Draw_Max_Accel_Menu() {
3020 3019
 
3021 3020
     Draw_Back_First();
3022 3021
     LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MaxSpeedJerkX + i);
3023
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(1), planner.max_jerk[X_AXIS] * MINUNITMULT);
3024
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(2), planner.max_jerk[Y_AXIS] * MINUNITMULT);
3025
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(3), planner.max_jerk[Z_AXIS] * MINUNITMULT);
3022
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(1), planner.max_jerk[X_AXIS] * MINUNITMULT);
3023
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(2), planner.max_jerk[Y_AXIS] * MINUNITMULT);
3024
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(3), planner.max_jerk[Z_AXIS] * MINUNITMULT);
3026 3025
     #if HAS_HOTEND
3027
-      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(4), planner.max_jerk[E_AXIS] * MINUNITMULT);
3026
+      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(4), planner.max_jerk[E_AXIS] * MINUNITMULT);
3028 3027
     #endif
3029 3028
   }
3030 3029
 #endif
@@ -3068,11 +3067,11 @@ inline void Draw_Steps_Menu() {
3068 3067
 
3069 3068
   Draw_Back_First();
3070 3069
   LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_StepX + i);
3071
-  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(1), planner.settings.axis_steps_per_mm[X_AXIS] * MINUNITMULT);
3072
-  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(2), planner.settings.axis_steps_per_mm[Y_AXIS] * MINUNITMULT);
3073
-  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(3), planner.settings.axis_steps_per_mm[Z_AXIS] * MINUNITMULT);
3070
+  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(1), planner.settings.axis_steps_per_mm[X_AXIS] * MINUNITMULT);
3071
+  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(2), planner.settings.axis_steps_per_mm[Y_AXIS] * MINUNITMULT);
3072
+  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(3), planner.settings.axis_steps_per_mm[Z_AXIS] * MINUNITMULT);
3074 3073
   #if HAS_HOTEND
3075
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(4), planner.settings.axis_steps_per_mm[E_AXIS] * MINUNITMULT);
3074
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, UNITFDIGITS, 210, MBASE(4), planner.settings.axis_steps_per_mm[E_AXIS] * MINUNITMULT);
3076 3075
   #endif
3077 3076
 }
3078 3077
 
@@ -3419,7 +3418,7 @@ void HMI_MaxAcceleration() {
3419 3418
         checkkey = MaxJerk_value;
3420 3419
         HMI_flag.jerk_axis = AxisEnum(select_jerk.now - 1);
3421 3420
         HMI_ValueStruct.Max_Jerk = planner.max_jerk[HMI_flag.jerk_axis] * MINUNITMULT;
3422
-        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk);
3421
+        DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk);
3423 3422
         EncoderRate.enabled = true;
3424 3423
       }
3425 3424
       else { // Back
@@ -3449,7 +3448,7 @@ void HMI_Step() {
3449 3448
       checkkey = Step_value;
3450 3449
       HMI_flag.step_axis = AxisEnum(select_step.now - 1);
3451 3450
       HMI_ValueStruct.Max_Step = planner.settings.axis_steps_per_mm[HMI_flag.step_axis] * MINUNITMULT;
3452
-      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, 1, 210, MBASE(select_step.now), HMI_ValueStruct.Max_Step);
3451
+      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Select_Color, 3, UNITFDIGITS, 210, MBASE(select_step.now), HMI_ValueStruct.Max_Step);
3453 3452
       EncoderRate.enabled = true;
3454 3453
     }
3455 3454
     else { // Back

Ładowanie…
Anuluj
Zapisz