Browse Source

Multi-platform DWIN_CREALITY_LCD support (#20738)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Johan van der Vyver 3 years ago
parent
commit
7f3dcb3e8a
No account linked to committer's email address

+ 3
- 2
Marlin/src/HAL/STM32F1/HAL.h View File

109
   #else
109
   #else
110
     #error "LCD_SERIAL_PORT must be -1 or from 1 to 3. Please update your configuration."
110
     #error "LCD_SERIAL_PORT must be -1 or from 1 to 3. Please update your configuration."
111
   #endif
111
   #endif
112
-
113
-  #define SERIAL_GET_TX_BUFFER_FREE() LCD_SERIAL.availableForWrite()
112
+  #if HAS_DGUS_LCD
113
+    #define SERIAL_GET_TX_BUFFER_FREE() LCD_SERIAL.availableForWrite()
114
+  #endif
114
 #endif
115
 #endif
115
 
116
 
116
 // Set interrupt grouping for this MCU
117
 // Set interrupt grouping for this MCU

+ 2
- 1
Marlin/src/MarlinCore.cpp View File

995
   #endif
995
   #endif
996
 
996
 
997
   MYSERIAL0.begin(BAUDRATE);
997
   MYSERIAL0.begin(BAUDRATE);
998
-  uint32_t serial_connect_timeout = millis() + 1000UL;
998
+  millis_t serial_connect_timeout = millis() + 1000UL;
999
   while (!MYSERIAL0 && PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
999
   while (!MYSERIAL0 && PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
1000
+
1000
   #if HAS_MULTI_SERIAL && !HAS_ETHERNET
1001
   #if HAS_MULTI_SERIAL && !HAS_ETHERNET
1001
     MYSERIAL1.begin(BAUDRATE);
1002
     MYSERIAL1.begin(BAUDRATE);
1002
     serial_connect_timeout = millis() + 1000UL;
1003
     serial_connect_timeout = millis() + 1000UL;

+ 3
- 0
Marlin/src/inc/Conditionals_LCD.h View File

651
 
651
 
652
 #if ENABLED(DWIN_CREALITY_LCD)
652
 #if ENABLED(DWIN_CREALITY_LCD)
653
   #define SERIAL_CATCHALL 0
653
   #define SERIAL_CATCHALL 0
654
+  #ifndef LCD_SERIAL_PORT
655
+    #define LCD_SERIAL_PORT 3 // Creality 4.x board
656
+  #endif
654
 #endif
657
 #endif
655
 
658
 
656
 /**
659
 /**

+ 11
- 4
Marlin/src/lcd/dwin/dwin_lcd.cpp View File

82
 // Send the data in the buffer and the packet end
82
 // Send the data in the buffer and the packet end
83
 inline void DWIN_Send(size_t &i) {
83
 inline void DWIN_Send(size_t &i) {
84
   ++i;
84
   ++i;
85
-  LOOP_L_N(n, i) { MYSERIAL1.write(DWIN_SendBuf[n]); delayMicroseconds(1); }
86
-  LOOP_L_N(n, 4) { MYSERIAL1.write(DWIN_BufTail[n]); delayMicroseconds(1); }
85
+  LOOP_L_N(n, i) { LCD_SERIAL.write(DWIN_SendBuf[n]); delayMicroseconds(1); }
86
+  LOOP_L_N(n, 4) { LCD_SERIAL.write(DWIN_BufTail[n]); delayMicroseconds(1); }
87
 }
87
 }
88
 
88
 
89
 /*-------------------------------------- System variable function --------------------------------------*/
89
 /*-------------------------------------- System variable function --------------------------------------*/
90
 
90
 
91
 // Handshake (1: Success, 0: Fail)
91
 // Handshake (1: Success, 0: Fail)
92
 bool DWIN_Handshake(void) {
92
 bool DWIN_Handshake(void) {
93
+  #ifndef LCD_BAUDRATE
94
+    #define LCD_BAUDRATE 115200
95
+  #endif
96
+  LCD_SERIAL.begin(LCD_BAUDRATE);
97
+  const millis_t serial_connect_timeout = millis() + 1000UL;
98
+  while (!LCD_SERIAL && PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
99
+
93
   size_t i = 0;
100
   size_t i = 0;
94
   DWIN_Byte(i, 0x00);
101
   DWIN_Byte(i, 0x00);
95
   DWIN_Send(i);
102
   DWIN_Send(i);
96
 
103
 
97
-  while (MYSERIAL1.available() > 0 && recnum < (signed)sizeof(databuf)) {
98
-    databuf[recnum] = MYSERIAL1.read();
104
+  while (LCD_SERIAL.available() > 0 && recnum < (signed)sizeof(databuf)) {
105
+    databuf[recnum] = LCD_SERIAL.read();
99
     // ignore the invalid data
106
     // ignore the invalid data
100
     if (databuf[0] != FHONE) { // prevent the program from running.
107
     if (databuf[0] != FHONE) { // prevent the program from running.
101
       if (recnum > 0) {
108
       if (recnum > 0) {

+ 14
- 7
Marlin/src/lcd/dwin/e3v2/dwin.cpp View File

497
   if (is_sel) Draw_Menu_Cursor(0);
497
   if (is_sel) Draw_Menu_Cursor(0);
498
 }
498
 }
499
 
499
 
500
-inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, auto &valref) {
501
-  if (encoder_diffState == ENCODER_DIFF_CW)
502
-    valref += EncoderRate.encoderMoveValue;
503
-  else if (encoder_diffState == ENCODER_DIFF_CCW)
504
-    valref -= EncoderRate.encoderMoveValue;
505
-  else if (encoder_diffState == ENCODER_DIFF_ENTER)
506
-    return true;
500
+#define APPLY_ENCODER_F \
501
+  if (encoder_diffState == ENCODER_DIFF_CW)          \
502
+    valref += EncoderRate.encoderMoveValue;          \
503
+  else if (encoder_diffState == ENCODER_DIFF_CCW)    \
504
+    valref -= EncoderRate.encoderMoveValue;          \
505
+  else if (encoder_diffState == ENCODER_DIFF_ENTER)  \
506
+    return true;                                     \
507
   return false;
507
   return false;
508
+
509
+inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, int16_t &valref) {
510
+  APPLY_ENCODER_F
511
+}
512
+
513
+inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, float &valref) {
514
+  APPLY_ENCODER_F
508
 }
515
 }
509
 
516
 
510
 //
517
 //

+ 2
- 1
Marlin/src/lcd/dwin/e3v2/dwin.h View File

249
     float Move_E_scale    = 0;
249
     float Move_E_scale    = 0;
250
   #endif
250
   #endif
251
   float offset_value      = 0;
251
   float offset_value      = 0;
252
-  char show_mode          = 0;    // -1: Temperature control    0: Printing temperature
252
+  TERN_(__STM32F1__, signed)
253
+  char show_mode          = 0; // -1: Temperature control    0: Printing temperature
253
 } HMI_value_t;
254
 } HMI_value_t;
254
 
255
 
255
 #define DWIN_CHINESE 123
256
 #define DWIN_CHINESE 123

+ 6
- 9
Marlin/src/lcd/extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.cpp View File

592
           } break;
592
           } break;
593
 
593
 
594
           case 5: { // A5 GET CURRENT COORDINATE
594
           case 5: { // A5 GET CURRENT COORDINATE
595
-            float xPostition = ExtUI::getAxisPosition_mm(ExtUI::X);
596
-            float yPostition = ExtUI::getAxisPosition_mm(ExtUI::Y);
597
-            float zPostition = ExtUI::getAxisPosition_mm(ExtUI::Z);
598
-            SEND_PGM("A5V X: ");
599
-            LCD_SERIAL.print(xPostition);
600
-            SEND_PGM(" Y: ");
601
-            LCD_SERIAL.print(yPostition);
602
-            SEND_PGM(" Z: ");
603
-            LCD_SERIAL.print(zPostition);
595
+            const float xPosition = ExtUI::getAxisPosition_mm(ExtUI::X),
596
+                        yPosition = ExtUI::getAxisPosition_mm(ExtUI::Y),
597
+                        zPosition = ExtUI::getAxisPosition_mm(ExtUI::Z);
598
+            SEND_PGM("A5V X: "); LCD_SERIAL.print(xPosition);
599
+            SEND_PGM(   " Y: "); LCD_SERIAL.print(yPosition);
600
+            SEND_PGM(   " Z: "); LCD_SERIAL.print(zPosition);
604
             SENDLINE_PGM("");
601
             SENDLINE_PGM("");
605
           } break;
602
           } break;
606
 
603
 

+ 18
- 21
Marlin/src/lcd/extui/lib/mks_ui/wifi_module.cpp View File

282
     dma_init();
282
     dma_init();
283
   }
283
   }
284
   #endif
284
   #endif
285
-  if (interrupt) {
286
-    #if ENABLED(MKS_WIFI_MODULE)
287
-      WIFISERIAL.end();
288
-      for (uint16_t i = 0; i < 65535; i++);
289
-      WIFISERIAL.begin(WIFI_BAUDRATE);
290
-      uint32_t serial_connect_timeout = millis() + 1000UL;
291
-        while (/*!WIFISERIAL && */PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
292
-      //for (uint8_t i=0;i<100;i++)WIFISERIAL.write(0x33);
293
-    #endif
294
-  }
295
-  else {
296
-    #if ENABLED(MKS_WIFI_MODULE)
297
-      WIFISERIAL.end();
298
-      for (uint16_t i = 0; i < 65535; i++);
299
-      WIFISERIAL.begin(WIFI_UPLOAD_BAUDRATE);
300
-      uint32_t serial_connect_timeout = millis() + 1000UL;
301
-        while (/*!WIFISERIAL && */PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
302
-      //for (uint16_t i=0;i<65535;i++);//WIFISERIAL.write(0x33);
303
-    #endif
304
-    dma_init();
305
-  }
285
+
286
+  #if ENABLED(MKS_WIFI_MODULE)
287
+    WIFISERIAL.end();
288
+    for (uint16_t i = 0; i < 65535; i++) { /*nada*/ }
289
+    WIFISERIAL.begin(interrupt ? WIFI_BAUDRATE : WIFI_UPLOAD_BAUDRATE);
290
+
291
+    const millis_t serial_connect_timeout = millis() + 1000UL;
292
+    while (/*!WIFISERIAL && */PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
293
+
294
+    if (interrupt) {
295
+      //for (uint8_t i=0;i<100;i++) WIFISERIAL.write(0x33);
296
+    }
297
+    else {
298
+      //for (uint16_t i=0;i<65535;i++); //WIFISERIAL.write(0x33);
299
+    }
300
+  #endif
301
+
302
+  if (!interrupt) dma_init();
306
 }
303
 }
307
 
304
 
308
 #if ENABLED(MKS_WIFI_MODULE)
305
 #if ENABLED(MKS_WIFI_MODULE)

+ 0
- 4
Marlin/src/module/settings.cpp View File

50
 #include "stepper.h"
50
 #include "stepper.h"
51
 #include "temperature.h"
51
 #include "temperature.h"
52
 
52
 
53
-#if ENABLED(DWIN_CREALITY_LCD)
54
-  #include "../lcd/dwin/e3v2/dwin.h"
55
-#endif
56
-
57
 #include "../lcd/marlinui.h"
53
 #include "../lcd/marlinui.h"
58
 #include "../libs/vector_3.h"   // for matrix_3x3
54
 #include "../libs/vector_3.h"   // for matrix_3x3
59
 #include "../gcode/gcode.h"
55
 #include "../gcode/gcode.h"

+ 14
- 1
Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h View File

258
  *               EXP2                                              EXP1
258
  *               EXP2                                              EXP1
259
  */
259
  */
260
 
260
 
261
-#if HAS_WIRED_LCD && !HAS_BTT_EXP_MOT
261
+#if ENABLED(DWIN_CREALITY_LCD)
262
+
263
+  // RET6 DWIN ENCODER LCD
264
+  #define BTN_ENC                           P1_20
265
+  #define BTN_EN1                           P1_23
266
+  #define BTN_EN2                           P1_22
267
+
268
+  #ifndef BEEPER_PIN
269
+    #define BEEPER_PIN                      P1_21
270
+    #undef SPEAKER
271
+  #endif
272
+
273
+#elif HAS_WIRED_LCD && !HAS_BTT_EXP_MOT
274
+
262
   #if ENABLED(ANET_FULL_GRAPHICS_LCD_ALT_WIRING)
275
   #if ENABLED(ANET_FULL_GRAPHICS_LCD_ALT_WIRING)
263
     #error "CAUTION! ANET_FULL_GRAPHICS_LCD_ALT_WIRING requires wiring modifications. See 'pins_BTT_SKR_V1_4.h' for details. Comment out this line to continue."
276
     #error "CAUTION! ANET_FULL_GRAPHICS_LCD_ALT_WIRING requires wiring modifications. See 'pins_BTT_SKR_V1_4.h' for details. Comment out this line to continue."
264
 
277
 

Loading…
Cancel
Save