|
@@ -20,15 +20,13 @@
|
20
|
20
|
*
|
21
|
21
|
*/
|
22
|
22
|
|
23
|
|
-/**
|
24
|
|
- ******************************************************************************
|
25
|
|
- * @file rotary_encoder.cpp
|
26
|
|
- * @author LEO / Creality3D
|
27
|
|
- * @date 2019/07/06
|
28
|
|
- * @version 2.0.1
|
29
|
|
- * @brief 旋转编码器操作函数
|
30
|
|
- ******************************************************************************
|
31
|
|
-**/
|
|
23
|
+/*****************************************************************************
|
|
24
|
+ * @file rotary_encoder.cpp
|
|
25
|
+ * @author LEO / Creality3D
|
|
26
|
+ * @date 2019/07/06
|
|
27
|
+ * @version 2.0.1
|
|
28
|
+ * @brief Rotary encoder functions
|
|
29
|
+ *****************************************************************************/
|
32
|
30
|
|
33
|
31
|
#include "../../../inc/MarlinConfigPre.h"
|
34
|
32
|
|
|
@@ -47,14 +45,14 @@
|
47
|
45
|
|
48
|
46
|
ENCODER_Rate EncoderRate;
|
49
|
47
|
|
50
|
|
-/*蜂鸣器响*/
|
|
48
|
+// Buzzer
|
51
|
49
|
void Encoder_tick(void) {
|
52
|
50
|
WRITE(BEEPER_PIN, 1);
|
53
|
51
|
delay(10);
|
54
|
52
|
WRITE(BEEPER_PIN, 0);
|
55
|
53
|
}
|
56
|
54
|
|
57
|
|
-/*编码器初始化 PB12:Encoder_A PB13:Encoder_B PB14:Encoder_C*/
|
|
55
|
+// Encoder initialization
|
58
|
56
|
void Encoder_Configuration(void) {
|
59
|
57
|
#if BUTTON_EXISTS(EN1)
|
60
|
58
|
SET_INPUT_PULLUP(BTN_EN1);
|
|
@@ -70,8 +68,7 @@ void Encoder_Configuration(void) {
|
70
|
68
|
#endif
|
71
|
69
|
}
|
72
|
70
|
|
73
|
|
-millis_t next_click_update_ms;
|
74
|
|
-/*接收数据解析 返回值:ENCODER_DIFF_NO,无状态; ENCODER_DIFF_CW,顺时针旋转; ENCODER_DIFF_CCW,逆时针旋转; ENCODER_DIFF_ENTER,按下*/
|
|
71
|
+// Analyze encoder value and return state
|
75
|
72
|
ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
|
76
|
73
|
const millis_t now = millis();
|
77
|
74
|
static unsigned char lastEncoderBits;
|
|
@@ -82,6 +79,7 @@ ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
|
82
|
79
|
if (BUTTON_PRESSED(EN1)) newbutton |= 0x01;
|
83
|
80
|
if (BUTTON_PRESSED(EN2)) newbutton |= 0x02;
|
84
|
81
|
if (BUTTON_PRESSED(ENC)) {
|
|
82
|
+ static millis_t next_click_update_ms;
|
85
|
83
|
if (ELAPSED(now, next_click_update_ms)) {
|
86
|
84
|
next_click_update_ms = millis() + 300;
|
87
|
85
|
Encoder_tick();
|
|
@@ -154,22 +152,22 @@ ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
|
154
|
152
|
|
155
|
153
|
#if PIN_EXISTS(LCD_LED)
|
156
|
154
|
|
157
|
|
- /*取低24位有效 24Bit: G7 G6 G5 G4 G3 G2 G1 G0 R7 R6 R5 R4 R3 R2 R1 R0 B7 B6 B5 B4 B3 B2 B1 B0*/
|
|
155
|
+ // Take the low 24 valid bits 24Bit: G7 G6 G5 G4 G3 G2 G1 G0 R7 R6 R5 R4 R3 R2 R1 R0 B7 B6 B5 B4 B3 B2 B1 B0
|
158
|
156
|
unsigned int LED_DataArray[LED_NUM];
|
159
|
157
|
|
160
|
|
- /*LED灯操作*/
|
|
158
|
+ // LED light operation
|
161
|
159
|
void LED_Action(void) {
|
162
|
160
|
LED_Control(RGB_SCALE_WARM_WHITE,0x0F);
|
163
|
161
|
delay(30);
|
164
|
162
|
LED_Control(RGB_SCALE_WARM_WHITE,0x00);
|
165
|
163
|
}
|
166
|
164
|
|
167
|
|
- /*LED初始化*/
|
|
165
|
+ // LED initialization
|
168
|
166
|
void LED_Configuration(void) {
|
169
|
167
|
SET_OUTPUT(LCD_LED_PIN);
|
170
|
168
|
}
|
171
|
169
|
|
172
|
|
- /*LED写数据*/
|
|
170
|
+ // LED write data
|
173
|
171
|
void LED_WriteData(void) {
|
174
|
172
|
unsigned char tempCounter_LED, tempCounter_Bit;
|
175
|
173
|
for (tempCounter_LED = 0; tempCounter_LED < LED_NUM; tempCounter_LED++) {
|
|
@@ -189,7 +187,9 @@ ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
|
189
|
187
|
}
|
190
|
188
|
}
|
191
|
189
|
|
192
|
|
- /*LED控制 RGB_Scale:RGB色彩配比 luminance:亮度(0~0xFF)*/
|
|
190
|
+ // LED control
|
|
191
|
+ // RGB_Scale: RGB color ratio
|
|
192
|
+ // luminance: brightness (0~0xFF)
|
193
|
193
|
void LED_Control(unsigned char RGB_Scale, unsigned char luminance) {
|
194
|
194
|
unsigned char temp_Counter;
|
195
|
195
|
for (temp_Counter = 0; temp_Counter < LED_NUM; temp_Counter++) {
|
|
@@ -203,7 +203,10 @@ ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
|
203
|
203
|
LED_WriteData();
|
204
|
204
|
}
|
205
|
205
|
|
206
|
|
- /*LED渐变控制 RGB_Scale:RGB色彩配比 luminance:亮度(0~0xFF) change_Time:渐变时间(ms)*/
|
|
206
|
+ // LED gradient control
|
|
207
|
+ // RGB_Scale: RGB color ratio
|
|
208
|
+ // luminance: brightness (0~0xFF)
|
|
209
|
+ // change_Time: gradient time (ms)
|
207
|
210
|
void LED_GraduallyControl(unsigned char RGB_Scale, unsigned char luminance, unsigned int change_Interval) {
|
208
|
211
|
unsigned char temp_Counter;
|
209
|
212
|
unsigned char LED_R_Data[LED_NUM], LED_G_Data[LED_NUM], LED_B_Data[LED_NUM];
|
|
@@ -246,6 +249,6 @@ ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
|
246
|
249
|
}
|
247
|
250
|
}
|
248
|
251
|
|
249
|
|
-#endif
|
|
252
|
+#endif // LCD_LED
|
250
|
253
|
|
251
|
254
|
#endif // DWIN_CREALITY_LCD
|