Browse Source

Merge https://github.com/MarlinFirmware/Marlin into tm2-utf-minus-kanji

Conflicts:
	Marlin/dogm_lcd_implementation.h
	Marlin/ultralcd_implementation_hitachi_HD44780.h

Fix merge conflicts 2
AnHardt 9 years ago
parent
commit
e72cb3e45d

+ 2
- 0
Marlin/Configuration.h View File

@@ -225,6 +225,8 @@ Here are some standard links for getting your machine calibrated:
225 225
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
226 226
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
227 227
 
228
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
229
+
228 230
 #ifdef PIDTEMPBED
229 231
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
230 232
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 2
Marlin/Marlin_main.cpp View File

@@ -2562,13 +2562,13 @@ inline void gcode_M17() {
2562 2562
    */
2563 2563
   inline void gcode_M28() {
2564 2564
     char* codepos = strchr_pointer + 4;
2565
-    char* starpos = strchr(strchr_pointer + 4, '*');
2565
+    char* starpos = strchr(codepos, '*');
2566 2566
     if (starpos) {
2567 2567
       char* npos = strchr(cmdbuffer[bufindr], 'N');
2568 2568
       strchr_pointer = strchr(npos, ' ') + 1;
2569 2569
       *(starpos) = '\0';
2570 2570
     }
2571
-    card.openFile(strchr_pointer + 4, false);
2571
+    card.openFile(codepos, false);
2572 2572
   }
2573 2573
 
2574 2574
   /**

+ 2
- 0
Marlin/configurator/config/Configuration.h View File

@@ -234,6 +234,8 @@ Here are some standard links for getting your machine calibrated:
234 234
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
235 235
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
236 236
 
237
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
238
+
237 239
 #ifdef PIDTEMPBED
238 240
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
239 241
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 20
- 28
Marlin/dogm_lcd_implementation.h View File

@@ -271,7 +271,7 @@ static void lcd_implementation_status_screen() {
271 271
       u8g.drawBox(55, 50, (unsigned int)(71.f * card.percentDone() / 100.f), 2);
272 272
     }
273 273
 
274
-    u8g.setPrintPos(80,47);
274
+    u8g.setPrintPos(80,48);
275 275
     if (starttime != 0) {
276 276
       uint16_t time = (millis() - starttime) / 60000;
277 277
       lcd_print(itostr2(time/60));
@@ -306,26 +306,27 @@ static void lcd_implementation_status_screen() {
306 306
     }
307 307
 
308 308
   // X, Y, Z-Coordinates
309
-  lcd_setFont(FONT_STATUSMENU);
310
-  u8g.drawBox(0,29,128,10);
309
+  #define XYZ_BASELINE 38
310
+  u8g.setFont(FONT_STATUSMENU);
311
+  u8g.drawBox(0,30,128,9);
311 312
   u8g.setColorIndex(0); // white on black
312
-  u8g.setPrintPos(2,37);
313
+  u8g.setPrintPos(2,XYZ_BASELINE);
313 314
   lcd_print('X');
314
-  u8g.drawPixel(8,33);
315
-  u8g.drawPixel(8,35);
316
-  u8g.setPrintPos(10,37);
315
+  u8g.drawPixel(8,XYZ_BASELINE - 5);
316
+  u8g.drawPixel(8,XYZ_BASELINE - 3);
317
+  u8g.setPrintPos(10,XYZ_BASELINE);
317 318
   lcd_print(ftostr31ns(current_position[X_AXIS]));
318
-  u8g.setPrintPos(43,37);
319
+  u8g.setPrintPos(43,XYZ_BASELINE);
319 320
   lcd_print('Y');
320
-  u8g.drawPixel(49,33);
321
-  u8g.drawPixel(49,35);
322
-  u8g.setPrintPos(51,37);
321
+  u8g.drawPixel(49,XYZ_BASELINE - 5);
322
+  u8g.drawPixel(49,XYZ_BASELINE - 3);
323
+  u8g.setPrintPos(51,XYZ_BASELINE);
323 324
   lcd_print(ftostr31ns(current_position[Y_AXIS]));
324
-  u8g.setPrintPos(83,37);
325
+  u8g.setPrintPos(83,XYZ_BASELINE);
325 326
   lcd_print('Z');
326
-  u8g.drawPixel(89,33);
327
-  u8g.drawPixel(89,35);
328
-  u8g.setPrintPos(91,37);
327
+  u8g.drawPixel(89,XYZ_BASELINE - 5);
328
+  u8g.drawPixel(89,XYZ_BASELINE - 3);
329
+  u8g.setPrintPos(91,XYZ_BASELINE);
329 330
   lcd_print(ftostr31(current_position[Z_AXIS]));
330 331
   u8g.setColorIndex(1); // black on white
331 332
  
@@ -333,23 +334,14 @@ static void lcd_implementation_status_screen() {
333 334
   lcd_setFont(FONT_MENU);
334 335
   u8g.setPrintPos(3,49);
335 336
   lcd_print(LCD_STR_FEEDRATE[0]);
336
-  lcd_setFont(FONT_STATUSMENU);
337
-  u8g.setPrintPos(12,48);
337
+  u8g.setFont(FONT_STATUSMENU);
338
+  u8g.setPrintPos(12,49);
338 339
   lcd_print(itostr3(feedmultiply));
339 340
   lcd_print('%');
340 341
 
341 342
   // Status line
342
-/* The new fonts are small enough
343
-  #ifndef MAPPER_C2C3
344
-    lcd_setFont(FONT_MENU);
345
-  #else
346
-    lcd_setFont(FONT_STATUSMENU);
347
-  #endif
348
-*/
349
-  lcd_setFont(FONT_MENU);
350
-
351
-  u8g.setPrintPos(0,61);
352
-
343
+  u8g.setFont(FONT_STATUSMENU);
344
+  u8g.setPrintPos(0,63);
353 345
   #ifndef FILAMENT_LCD_DISPLAY
354 346
     lcd_print(lcd_status_message);
355 347
   #else

+ 2
- 0
Marlin/example_configurations/Felix/Configuration.h View File

@@ -215,6 +215,8 @@ Here are some standard links for getting your machine calibrated:
215 215
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
216 216
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
217 217
 
218
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
219
+
218 220
 #ifdef PIDTEMPBED
219 221
 // Felix Foil Heater
220 222
    #define DEFAULT_bedKp 103.37

+ 2
- 0
Marlin/example_configurations/Felix/Configuration_DUAL.h View File

@@ -215,6 +215,8 @@ Here are some standard links for getting your machine calibrated:
215 215
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
216 216
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
217 217
 
218
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
219
+
218 220
 #ifdef PIDTEMPBED
219 221
 // Felix Foil Heater
220 222
    #define DEFAULT_bedKp 103.37

+ 2
- 0
Marlin/example_configurations/Hephestos/Configuration.h View File

@@ -231,6 +231,8 @@ Here are some standard links for getting your machine calibrated:
231 231
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
232 232
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
233 233
 
234
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
235
+
234 236
 #ifdef PIDTEMPBED
235 237
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
236 238
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 0
Marlin/example_configurations/K8200/Configuration.h View File

@@ -230,6 +230,8 @@ Here are some standard links for getting your machine calibrated:
230 230
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
231 231
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
232 232
 
233
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
234
+
233 235
 #ifdef PIDTEMPBED
234 236
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
235 237
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 0
Marlin/example_configurations/SCARA/Configuration.h View File

@@ -254,6 +254,8 @@ Here are some standard links for getting your machine calibrated:
254 254
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
255 255
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
256 256
 
257
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
258
+
257 259
 #ifdef PIDTEMPBED
258 260
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
259 261
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 0
Marlin/example_configurations/WITBOX/Configuration.h View File

@@ -230,6 +230,8 @@ Here are some standard links for getting your machine calibrated:
230 230
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
231 231
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
232 232
 
233
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
234
+
233 235
 #ifdef PIDTEMPBED
234 236
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
235 237
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 0
Marlin/example_configurations/delta/generic/Configuration.h View File

@@ -258,6 +258,8 @@ Here are some standard links for getting your machine calibrated:
258 258
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
259 259
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
260 260
 
261
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
262
+
261 263
 #ifdef PIDTEMPBED
262 264
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
263 265
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

@@ -259,6 +259,8 @@ Here are some standard links for getting your machine calibrated:
259 259
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
260 260
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
261 261
 
262
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
263
+
262 264
 #ifdef PIDTEMPBED
263 265
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
264 266
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 0
Marlin/example_configurations/makibox/Configuration.h View File

@@ -228,6 +228,8 @@ Here are some standard links for getting your machine calibrated:
228 228
 // to increase the heat up rate. However, if changed, user must be aware of the safety concerns
229 229
 // of drawing too much current from the power supply.
230 230
 
231
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
232
+
231 233
 #ifdef PIDTEMPBED
232 234
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
233 235
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 2
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

@@ -230,6 +230,8 @@ Here are some standard links for getting your machine calibrated:
230 230
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
231 231
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
232 232
 
233
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
234
+
233 235
 #ifdef PIDTEMPBED
234 236
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
235 237
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)

+ 15
- 0
Marlin/temperature.cpp View File

@@ -636,6 +636,21 @@ float get_pid_output(int e) {
636 636
       pid_output = constrain(target_temperature_bed, 0, MAX_BED_POWER);
637 637
     #endif // PID_OPENLOOP
638 638
 
639
+    #ifdef PID_BED_DEBUG
640
+      SERIAL_ECHO_START;
641
+      SERIAL_ECHO(" PID_BED_DEBUG ");
642
+      SERIAL_ECHO(": Input ");
643
+      SERIAL_ECHO(current_temperature_bed);
644
+      SERIAL_ECHO(" Output ");
645
+      SERIAL_ECHO(pid_output);
646
+      SERIAL_ECHO(" pTerm ");
647
+      SERIAL_ECHO(pTerm_bed);
648
+      SERIAL_ECHO(" iTerm ");
649
+      SERIAL_ECHO(iTerm_bed);
650
+      SERIAL_ECHO(" dTerm ");
651
+      SERIAL_ECHOLN(dTerm_bed);
652
+    #endif //PID_BED_DEBUG
653
+
639 654
     return pid_output;
640 655
   }
641 656
 #endif

+ 18
- 18
Marlin/ultralcd_implementation_hitachi_HD44780.h View File

@@ -663,26 +663,26 @@ static void lcd_implementation_drawmenu_setting_edit_generic_P(bool sel, uint8_t
663 663
   lcd_printPGM(data);
664 664
 }
665 665
 
666
-#define lcd_implementation_drawmenu_setting_edit_int3(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', itostr3(*(data)))
667
-#define lcd_implementation_drawmenu_setting_edit_float3(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr3(*(data)))
668
-#define lcd_implementation_drawmenu_setting_edit_float32(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr32(*(data)))
669
-#define lcd_implementation_drawmenu_setting_edit_float43(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr43(*(data)))
670
-#define lcd_implementation_drawmenu_setting_edit_float5(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr5(*(data)))
671
-#define lcd_implementation_drawmenu_setting_edit_float52(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr52(*(data)))
672
-#define lcd_implementation_drawmenu_setting_edit_float51(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr51(*(data)))
673
-#define lcd_implementation_drawmenu_setting_edit_long5(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr5(*(data)))
674
-#define lcd_implementation_drawmenu_setting_edit_bool(sel, row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(sel, row, pstr, ' ', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
666
+#define lcd_implementation_drawmenu_setting_edit_int3(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', itostr3(*(data)))
667
+#define lcd_implementation_drawmenu_setting_edit_float3(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr3(*(data)))
668
+#define lcd_implementation_drawmenu_setting_edit_float32(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr32(*(data)))
669
+#define lcd_implementation_drawmenu_setting_edit_float43(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr43(*(data)))
670
+#define lcd_implementation_drawmenu_setting_edit_float5(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr5(*(data)))
671
+#define lcd_implementation_drawmenu_setting_edit_float52(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr52(*(data)))
672
+#define lcd_implementation_drawmenu_setting_edit_float51(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr51(*(data)))
673
+#define lcd_implementation_drawmenu_setting_edit_long5(sel, row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr5(*(data)))
674
+#define lcd_implementation_drawmenu_setting_edit_bool(sel, row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(sel, row, pstr, '>', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
675 675
 
676 676
 //Add version for callback functions
677
-#define lcd_implementation_drawmenu_setting_edit_callback_int3(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', itostr3(*(data)))
678
-#define lcd_implementation_drawmenu_setting_edit_callback_float3(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr3(*(data)))
679
-#define lcd_implementation_drawmenu_setting_edit_callback_float32(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr32(*(data)))
680
-#define lcd_implementation_drawmenu_setting_edit_callback_float43(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr43(*(data)))
681
-#define lcd_implementation_drawmenu_setting_edit_callback_float5(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr5(*(data)))
682
-#define lcd_implementation_drawmenu_setting_edit_callback_float52(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr52(*(data)))
683
-#define lcd_implementation_drawmenu_setting_edit_callback_float51(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr51(*(data)))
684
-#define lcd_implementation_drawmenu_setting_edit_callback_long5(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ' ', ftostr5(*(data)))
685
-#define lcd_implementation_drawmenu_setting_edit_callback_bool(sel, row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(sel, row, pstr, ' ', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
677
+#define lcd_implementation_drawmenu_setting_edit_callback_int3(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', itostr3(*(data)))
678
+#define lcd_implementation_drawmenu_setting_edit_callback_float3(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr3(*(data)))
679
+#define lcd_implementation_drawmenu_setting_edit_callback_float32(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr32(*(data)))
680
+#define lcd_implementation_drawmenu_setting_edit_callback_float43(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr43(*(data)))
681
+#define lcd_implementation_drawmenu_setting_edit_callback_float5(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr5(*(data)))
682
+#define lcd_implementation_drawmenu_setting_edit_callback_float52(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr52(*(data)))
683
+#define lcd_implementation_drawmenu_setting_edit_callback_float51(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr51(*(data)))
684
+#define lcd_implementation_drawmenu_setting_edit_callback_long5(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr5(*(data)))
685
+#define lcd_implementation_drawmenu_setting_edit_callback_bool(sel, row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(sel, row, pstr, '>', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
686 686
 
687 687
 void lcd_implementation_drawedit(const char* pstr, char* value) {
688 688
   lcd.setCursor(1, 1);

Loading…
Cancel
Save