瀏覽代碼

🐛 Fix RRW Keypad & Zonestar buttons (#23388)

ellensp 2 年之前
父節點
當前提交
67521bdd01
No account linked to committer's email address
共有 1 個文件被更改,包括 33 次插入31 次删除
  1. 33
    31
      Marlin/src/lcd/buttons.h

+ 33
- 31
Marlin/src/lcd/buttons.h 查看文件

@@ -45,36 +45,6 @@
45 45
   #define ENCODER_PHASE_3 1
46 46
 #endif
47 47
 
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
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 48
 #if EITHER(HAS_DIGITAL_BUTTONS, HAS_DWIN_E3V2)
79 49
   // Wheel spin pins where BA is 00, 10, 11, 01 (1 bit always changes)
80 50
   #define BLEN_A 0
@@ -141,7 +111,39 @@
141 111
   #define B_ST _BV(BL_ST)
142 112
 
143 113
   #ifndef BUTTON_CLICK
144
-    #define BUTTON_CLICK() (buttons & (B_MI|B_ST))
114
+    #if EN_C
115
+      #define BUTTON_CLICK() (buttons & (B_MI|B_ST))
116
+    #endif
117
+  #endif
118
+#endif
119
+
120
+#if IS_RRW_KEYPAD
121
+  #define BTN_OFFSET          0 // Bit offset into buttons for shift register values
122
+
123
+  #define BLEN_KEYPAD_F3      0
124
+  #define BLEN_KEYPAD_F2      1
125
+  #define BLEN_KEYPAD_F1      2
126
+  #define BLEN_KEYPAD_DOWN    3
127
+  #define BLEN_KEYPAD_RIGHT   4
128
+  #define BLEN_KEYPAD_MIDDLE  5
129
+  #define BLEN_KEYPAD_UP      6
130
+  #define BLEN_KEYPAD_LEFT    7
131
+
132
+  #define EN_KEYPAD_F1      _BV(BTN_OFFSET + BLEN_KEYPAD_F1)
133
+  #define EN_KEYPAD_F2      _BV(BTN_OFFSET + BLEN_KEYPAD_F2)
134
+  #define EN_KEYPAD_F3      _BV(BTN_OFFSET + BLEN_KEYPAD_F3)
135
+  #define EN_KEYPAD_DOWN    _BV(BTN_OFFSET + BLEN_KEYPAD_DOWN)
136
+  #define EN_KEYPAD_RIGHT   _BV(BTN_OFFSET + BLEN_KEYPAD_RIGHT)
137
+  #define EN_KEYPAD_MIDDLE  _BV(BTN_OFFSET + BLEN_KEYPAD_MIDDLE)
138
+  #define EN_KEYPAD_UP      _BV(BTN_OFFSET + BLEN_KEYPAD_UP)
139
+  #define EN_KEYPAD_LEFT    _BV(BTN_OFFSET + BLEN_KEYPAD_LEFT)
140
+
141
+  #define RRK(B) (keypad_buttons & (B))
142
+
143
+  #ifdef EN_C
144
+    #define BUTTON_CLICK() ((buttons & EN_C) || RRK(EN_KEYPAD_MIDDLE))
145
+  #else
146
+    #define BUTTON_CLICK() RRK(EN_KEYPAD_MIDDLE)
145 147
   #endif
146 148
 #endif
147 149
 

Loading…
取消
儲存