|
@@ -1041,15 +1041,15 @@ void lcd_sdcard_menu()
|
1041
|
1041
|
#define menu_edit_type(_type, _name, _strFunc, scale) \
|
1042
|
1042
|
void menu_edit_ ## _name () \
|
1043
|
1043
|
{ \
|
1044
|
|
- if ((int32_t)encoderPosition < minEditValue) \
|
1045
|
|
- encoderPosition = minEditValue; \
|
|
1044
|
+ if ((int32_t)encoderPosition < 0) \
|
|
1045
|
+ encoderPosition = 0; \
|
1046
|
1046
|
if ((int32_t)encoderPosition > maxEditValue) \
|
1047
|
1047
|
encoderPosition = maxEditValue; \
|
1048
|
1048
|
if (lcdDrawUpdate) \
|
1049
|
|
- lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \
|
|
1049
|
+ lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
|
1050
|
1050
|
if (LCD_CLICKED) \
|
1051
|
1051
|
{ \
|
1052
|
|
- *((_type*)editValue) = ((_type)encoderPosition) / scale; \
|
|
1052
|
+ *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
|
1053
|
1053
|
lcd_quick_feedback(); \
|
1054
|
1054
|
currentMenu = prevMenu; \
|
1055
|
1055
|
encoderPosition = prevEncoderPosition; \
|
|
@@ -1057,15 +1057,15 @@ void lcd_sdcard_menu()
|
1057
|
1057
|
} \
|
1058
|
1058
|
void menu_edit_callback_ ## _name () \
|
1059
|
1059
|
{ \
|
1060
|
|
- if ((int32_t)encoderPosition < minEditValue) \
|
1061
|
|
- encoderPosition = minEditValue; \
|
|
1060
|
+ if ((int32_t)encoderPosition < 0) \
|
|
1061
|
+ encoderPosition = 0; \
|
1062
|
1062
|
if ((int32_t)encoderPosition > maxEditValue) \
|
1063
|
1063
|
encoderPosition = maxEditValue; \
|
1064
|
1064
|
if (lcdDrawUpdate) \
|
1065
|
|
- lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \
|
|
1065
|
+ lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
|
1066
|
1066
|
if (LCD_CLICKED) \
|
1067
|
1067
|
{ \
|
1068
|
|
- *((_type*)editValue) = ((_type)encoderPosition) / scale; \
|
|
1068
|
+ *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
|
1069
|
1069
|
lcd_quick_feedback(); \
|
1070
|
1070
|
currentMenu = prevMenu; \
|
1071
|
1071
|
encoderPosition = prevEncoderPosition; \
|
|
@@ -1083,8 +1083,8 @@ void lcd_sdcard_menu()
|
1083
|
1083
|
editLabel = pstr; \
|
1084
|
1084
|
editValue = ptr; \
|
1085
|
1085
|
minEditValue = minValue * scale; \
|
1086
|
|
- maxEditValue = maxValue * scale; \
|
1087
|
|
- encoderPosition = (*ptr) * scale; \
|
|
1086
|
+ maxEditValue = maxValue * scale - minEditValue; \
|
|
1087
|
+ encoderPosition = (*ptr) * scale - minEditValue; \
|
1088
|
1088
|
}\
|
1089
|
1089
|
static void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, menuFunc_t callback) \
|
1090
|
1090
|
{ \
|
|
@@ -1097,8 +1097,8 @@ void lcd_sdcard_menu()
|
1097
|
1097
|
editLabel = pstr; \
|
1098
|
1098
|
editValue = ptr; \
|
1099
|
1099
|
minEditValue = minValue * scale; \
|
1100
|
|
- maxEditValue = maxValue * scale; \
|
1101
|
|
- encoderPosition = (*ptr) * scale; \
|
|
1100
|
+ maxEditValue = maxValue * scale - minEditValue; \
|
|
1101
|
+ encoderPosition = (*ptr) * scale - minEditValue; \
|
1102
|
1102
|
callbackFunc = callback;\
|
1103
|
1103
|
}
|
1104
|
1104
|
menu_edit_type(int, int3, itostr3, 1)
|
|
@@ -1220,7 +1220,7 @@ void lcd_init()
|
1220
|
1220
|
#ifdef SR_LCD_2W_NL // Non latching 2 wire shift register
|
1221
|
1221
|
pinMode (SR_DATA_PIN, OUTPUT);
|
1222
|
1222
|
pinMode (SR_CLK_PIN, OUTPUT);
|
1223
|
|
- #elif defined(SHIFT_CLK)
|
|
1223
|
+ #elif defined(SHIFT_CLK)
|
1224
|
1224
|
pinMode(SHIFT_CLK,OUTPUT);
|
1225
|
1225
|
pinMode(SHIFT_LD,OUTPUT);
|
1226
|
1226
|
pinMode(SHIFT_EN,OUTPUT);
|