Skip to content

Commit 9fcd83a

Browse files
committed
Improve hybrid threshold data type #189
1 parent 571c5d0 commit 9fcd83a

File tree

4 files changed

+24
-7
lines changed

4 files changed

+24
-7
lines changed

Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h

+17
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,23 @@ class DGUSScreenHandler {
293293
}
294294
}
295295

296+
static void DGUSLCD_SendULongToDisplay(DGUS_VP_Variable &var) {
297+
if (var.memadr) {
298+
// Round - truncated values look like skipped numbers
299+
long roundedValue = *(uint32_t *) var.memadr;
300+
dgusdisplay.WriteVariable(var.VP, roundedValue);
301+
}
302+
}
303+
304+
static void DGUSLCD_ReceiveULongFromDisplay(DGUS_VP_Variable &var, void* val_ptr) {
305+
if (var.memadr) {
306+
// Round - truncated values look like skipped numbers
307+
uint32_t incomingValue = *(uint32_t *) val_ptr;
308+
309+
*(uint32_t*)var.memadr = swap32(incomingValue);
310+
}
311+
}
312+
296313
// Toggle a boolean at the specified memory address
297314
static void DGUSLCD_ToggleBoolean(DGUS_VP_Variable &var, void *val_ptr) {
298315
if (var.memadr) {

Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/AxisSettingsHandler.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ bool AxisSettingsHandler::has_tmc_settings = false;
3838

3939
uint16_t AxisSettingsHandler::tmc_current;
4040
bool AxisSettingsHandler::stealthchop;
41-
uint16_t AxisSettingsHandler::hybrid_threshold;
41+
uint32_t AxisSettingsHandler::hybrid_threshold;
4242

4343
void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr) {
4444
switch (uInt16Value(val_ptr)) {
@@ -79,7 +79,7 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
7979
stealthchop = stepperX.get_stored_stealthChop();
8080

8181
#if ENABLED(HYBRID_THRESHOLD)
82-
hybrid_threshold = static_cast<uint16_t>(stepperX.get_pwm_thrs());
82+
hybrid_threshold = static_cast<uint32_t>(stepperX.get_pwm_thrs());
8383
#endif
8484
#endif
8585
break;
@@ -93,7 +93,7 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
9393
stealthchop = stepperY.get_stored_stealthChop();
9494

9595
#if ENABLED(HYBRID_THRESHOLD)
96-
hybrid_threshold = static_cast<uint16_t>(stepperY.get_pwm_thrs());
96+
hybrid_threshold = static_cast<uint32_t>(stepperY.get_pwm_thrs());
9797
#endif
9898
#endif
9999
break;
@@ -107,7 +107,7 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
107107
stealthchop = stepperZ.get_stored_stealthChop();
108108

109109
#if ENABLED(HYBRID_THRESHOLD)
110-
hybrid_threshold = static_cast<uint16_t>(stepperZ.get_pwm_thrs());
110+
hybrid_threshold = static_cast<uint32_t>(stepperZ.get_pwm_thrs());
111111
#endif
112112
#endif
113113
break;
@@ -121,7 +121,7 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
121121
stealthchop = stepperE0.get_stored_stealthChop();
122122

123123
#if ENABLED(HYBRID_THRESHOLD)
124-
hybrid_threshold = static_cast<uint16_t>(stepperE0.get_pwm_thrs());
124+
hybrid_threshold = static_cast<uint32_t>(stepperE0.get_pwm_thrs());
125125
#endif
126126
#endif
127127
break;

Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/AxisSettingsHandler.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class AxisSettingsHandler {
1616
static bool has_tmc_settings;
1717
static uint16_t tmc_current;
1818
static bool stealthchop;
19-
static uint16_t hybrid_threshold;
19+
static uint32_t hybrid_threshold;
2020

2121
public:
2222
static void HandleNavigation(DGUS_VP_Variable &var, void *val_ptr);

Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
507507
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCCURRENT, &AxisSettingsHandler::tmc_current, ScreenHandler.DGUSLCD_SetValueDirectly<uint16_t>, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
508508
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_BUTTON, &AxisSettingsHandler::stealthchop, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr),
509509
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_ICON, &AxisSettingsHandler::stealthchop, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_TOGGLE_ON, ICON_TOGGLE_OFF>)),
510-
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCHYBRIDTHRESHOLD, &AxisSettingsHandler::hybrid_threshold, ScreenHandler.DGUSLCD_SetValueDirectly<uint16_t>, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
510+
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCHYBRIDTHRESHOLD, &AxisSettingsHandler::hybrid_threshold, ScreenHandler.DGUSLCD_ReceiveULongFromDisplay, ScreenHandler.DGUSLCD_SendULongToDisplay),
511511

512512
VPHELPER(VP_AXIS_TMC_NAV_ICON, &AxisSettingsHandler::has_tmc_settings, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<AXIS_TMC_NAV_ICON_SHOWING, AXIS_TMC_NAV_ICON_HIDING>)),
513513

0 commit comments

Comments
 (0)