|
@@ -45,8 +45,37 @@
|
45
|
45
|
#define ENCODER_PHASE_3 1
|
46
|
46
|
#endif
|
47
|
47
|
|
48
|
|
-#if EITHER(HAS_DIGITAL_BUTTONS, DWIN_CREALITY_LCD)
|
|
48
|
+#if IS_RRW_KEYPAD
|
|
49
|
+ #define BTN_OFFSET 0 // Bit offset into buttons for shift register values
|
|
50
|
+
|
|
51
|
+ #define BLEN_KEYPAD_F3 0
|
|
52
|
+ #define BLEN_KEYPAD_F2 1
|
|
53
|
+ #define BLEN_KEYPAD_F1 2
|
|
54
|
+ #define BLEN_KEYPAD_DOWN 3
|
|
55
|
+ #define BLEN_KEYPAD_RIGHT 4
|
|
56
|
+ #define BLEN_KEYPAD_MIDDLE 5
|
|
57
|
+ #define BLEN_KEYPAD_UP 6
|
|
58
|
+ #define BLEN_KEYPAD_LEFT 7
|
49
|
59
|
|
|
60
|
+ #define EN_KEYPAD_F1 _BV(BTN_OFFSET + BLEN_KEYPAD_F1)
|
|
61
|
+ #define EN_KEYPAD_F2 _BV(BTN_OFFSET + BLEN_KEYPAD_F2)
|
|
62
|
+ #define EN_KEYPAD_F3 _BV(BTN_OFFSET + BLEN_KEYPAD_F3)
|
|
63
|
+ #define EN_KEYPAD_DOWN _BV(BTN_OFFSET + BLEN_KEYPAD_DOWN)
|
|
64
|
+ #define EN_KEYPAD_RIGHT _BV(BTN_OFFSET + BLEN_KEYPAD_RIGHT)
|
|
65
|
+ #define EN_KEYPAD_MIDDLE _BV(BTN_OFFSET + BLEN_KEYPAD_MIDDLE)
|
|
66
|
+ #define EN_KEYPAD_UP _BV(BTN_OFFSET + BLEN_KEYPAD_UP)
|
|
67
|
+ #define EN_KEYPAD_LEFT _BV(BTN_OFFSET + BLEN_KEYPAD_LEFT)
|
|
68
|
+
|
|
69
|
+ #define RRK(B) (keypad_buttons & (B))
|
|
70
|
+
|
|
71
|
+ #ifdef EN_C
|
|
72
|
+ #define BUTTON_CLICK() ((buttons & EN_C) || RRK(EN_KEYPAD_MIDDLE))
|
|
73
|
+ #else
|
|
74
|
+ #define BUTTON_CLICK() RRK(EN_KEYPAD_MIDDLE)
|
|
75
|
+ #endif
|
|
76
|
+#endif
|
|
77
|
+
|
|
78
|
+#if EITHER(HAS_DIGITAL_BUTTONS, DWIN_CREALITY_LCD)
|
50
|
79
|
// Wheel spin pins where BA is 00, 10, 11, 01 (1 bit always changes)
|
51
|
80
|
#define BLEN_A 0
|
52
|
81
|
#define BLEN_B 1
|
|
@@ -62,9 +91,7 @@
|
62
|
91
|
#endif
|
63
|
92
|
|
64
|
93
|
#if ENABLED(LCD_I2C_VIKI)
|
65
|
|
-
|
66
|
94
|
#include <LiquidTWI2.h>
|
67
|
|
-
|
68
|
95
|
#define B_I2C_BTN_OFFSET 3 // (the first three bit positions reserved for EN_A, EN_B, EN_C)
|
69
|
96
|
|
70
|
97
|
// button and encoder bit positions within 'buttons'
|
|
@@ -84,21 +111,15 @@
|
84
|
111
|
// I2C buttons take too long to read inside an interrupt context and so we read them during lcd_update
|
85
|
112
|
|
86
|
113
|
#elif ENABLED(LCD_I2C_PANELOLU2)
|
87
|
|
-
|
88
|
114
|
#if !BUTTON_EXISTS(ENC) // Use I2C if not directly connected to a pin
|
89
|
|
-
|
90
|
115
|
#define B_I2C_BTN_OFFSET 3 // (the first three bit positions reserved for EN_A, EN_B, EN_C)
|
91
|
116
|
|
92
|
117
|
#define B_MI (PANELOLU2_ENCODER_C << B_I2C_BTN_OFFSET) // requires LiquidTWI2 library v1.2.3 or later
|
93
|
118
|
|
94
|
119
|
#define BUTTON_CLICK() (buttons & B_MI)
|
95
|
|
-
|
96
|
120
|
#endif
|
97
|
|
-
|
98
|
121
|
#endif
|
99
|
|
-
|
100
|
122
|
#else
|
101
|
|
-
|
102
|
123
|
#undef BUTTON_EXISTS
|
103
|
124
|
#define BUTTON_EXISTS(...) false
|
104
|
125
|
|
|
@@ -122,37 +143,6 @@
|
122
|
143
|
#ifndef BUTTON_CLICK
|
123
|
144
|
#define BUTTON_CLICK() (buttons & (B_MI|B_ST))
|
124
|
145
|
#endif
|
125
|
|
-
|
126
|
|
-#endif
|
127
|
|
-
|
128
|
|
-#if IS_RRW_KEYPAD
|
129
|
|
- #define BTN_OFFSET 0 // Bit offset into buttons for shift register values
|
130
|
|
-
|
131
|
|
- #define BLEN_KEYPAD_F3 0
|
132
|
|
- #define BLEN_KEYPAD_F2 1
|
133
|
|
- #define BLEN_KEYPAD_F1 2
|
134
|
|
- #define BLEN_KEYPAD_DOWN 3
|
135
|
|
- #define BLEN_KEYPAD_RIGHT 4
|
136
|
|
- #define BLEN_KEYPAD_MIDDLE 5
|
137
|
|
- #define BLEN_KEYPAD_UP 6
|
138
|
|
- #define BLEN_KEYPAD_LEFT 7
|
139
|
|
-
|
140
|
|
- #define EN_KEYPAD_F1 _BV(BTN_OFFSET + BLEN_KEYPAD_F1)
|
141
|
|
- #define EN_KEYPAD_F2 _BV(BTN_OFFSET + BLEN_KEYPAD_F2)
|
142
|
|
- #define EN_KEYPAD_F3 _BV(BTN_OFFSET + BLEN_KEYPAD_F3)
|
143
|
|
- #define EN_KEYPAD_DOWN _BV(BTN_OFFSET + BLEN_KEYPAD_DOWN)
|
144
|
|
- #define EN_KEYPAD_RIGHT _BV(BTN_OFFSET + BLEN_KEYPAD_RIGHT)
|
145
|
|
- #define EN_KEYPAD_MIDDLE _BV(BTN_OFFSET + BLEN_KEYPAD_MIDDLE)
|
146
|
|
- #define EN_KEYPAD_UP _BV(BTN_OFFSET + BLEN_KEYPAD_UP)
|
147
|
|
- #define EN_KEYPAD_LEFT _BV(BTN_OFFSET + BLEN_KEYPAD_LEFT)
|
148
|
|
-
|
149
|
|
- #define RRK(B) (keypad_buttons & (B))
|
150
|
|
-
|
151
|
|
- #ifdef EN_C
|
152
|
|
- #define BUTTON_CLICK() ((buttons & EN_C) || RRK(EN_KEYPAD_MIDDLE))
|
153
|
|
- #else
|
154
|
|
- #define BUTTON_CLICK() RRK(EN_KEYPAD_MIDDLE)
|
155
|
|
- #endif
|
156
|
146
|
#endif
|
157
|
147
|
|
158
|
148
|
#ifndef EN_A
|