Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
MarlinKimbra
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
machinery
MarlinKimbra
Commits
45fc6b0c
Commit
45fc6b0c
authored
Aug 18, 2015
by
Simone Primarosa
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2 from MagoKimbra/master
Update from master
parents
e92e02e0
6d4099ba
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
150 additions
and
118 deletions
+150
-118
Marlin_main.cpp
MarlinKimbra/Marlin_main.cpp
+0
-5
marlinkimbra.tft
MarlinKimbra/nextion/marlinkimbra.tft
+0
-0
marlinkimbra_v0_2.tft
MarlinKimbra/nextion/marlinkimbra_v0_2.tft
+0
-0
planner.cpp
MarlinKimbra/planner.cpp
+17
-17
ultralcd.cpp
MarlinKimbra/ultralcd.cpp
+130
-94
ultralcd.h
MarlinKimbra/ultralcd.h
+3
-2
No files found.
MarlinKimbra/Marlin_main.cpp
View file @
45fc6b0c
...
@@ -7224,11 +7224,6 @@ void prepare_move() {
...
@@ -7224,11 +7224,6 @@ void prepare_move() {
if
(
!
prepare_move_cartesian
())
return
;
if
(
!
prepare_move_cartesian
())
return
;
#endif
#endif
#ifdef IDLE_OOZING_PREVENT || EXTRUDER_RUNOUT_PREVENT
axis_last_activity
=
millis
();
axis_is_moving
=
false
;
#endif
set_current_to_destination
();
set_current_to_destination
();
}
}
...
...
MarlinKimbra/nextion/marlinkimbra.tft
deleted
100644 → 0
View file @
e92e02e0
File deleted
MarlinKimbra/nextion/marlinkimbra_v0_2.tft
0 → 100644
View file @
45fc6b0c
File added
MarlinKimbra/planner.cpp
View file @
45fc6b0c
...
@@ -605,30 +605,30 @@ float junction_deviation = 0.1;
...
@@ -605,30 +605,30 @@ float junction_deviation = 0.1;
#endif
#endif
// Compute direction bits for this block
// Compute direction bits for this block
uint8_t
db
=
0
;
uint8_t
d
ir
b
=
0
;
#if ENABLED(COREXY)
#if ENABLED(COREXY)
if
(
dx
<
0
)
db
|=
BIT
(
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dx
<
0
)
d
ir
b
|=
BIT
(
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dy
<
0
)
db
|=
BIT
(
Y_HEAD
);
// ...and Y
if
(
dy
<
0
)
d
ir
b
|=
BIT
(
Y_HEAD
);
// ...and Y
if
(
dz
<
0
)
db
|=
BIT
(
Z_AXIS
);
if
(
dz
<
0
)
d
ir
b
|=
BIT
(
Z_AXIS
);
if
(
da
<
0
)
db
|=
BIT
(
A_AXIS
);
// Motor A direction
if
(
da
<
0
)
d
ir
b
|=
BIT
(
A_AXIS
);
// Motor A direction
if
(
db
<
0
)
db
|=
BIT
(
B_AXIS
);
// Motor B direction
if
(
db
<
0
)
d
ir
b
|=
BIT
(
B_AXIS
);
// Motor B direction
#elif ENABLED(COREXZ)
#elif ENABLED(COREXZ)
if
(
dx
<
0
)
db
|=
BIT
(
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dx
<
0
)
d
ir
b
|=
BIT
(
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dy
<
0
)
db
|=
BIT
(
Y_AXIS
);
if
(
dy
<
0
)
d
ir
b
|=
BIT
(
Y_AXIS
);
if
(
dz
<
0
)
db
|=
BIT
(
Z_HEAD
);
// ...and Z
if
(
dz
<
0
)
d
ir
b
|=
BIT
(
Z_HEAD
);
// ...and Z
if
(
da
<
0
)
db
|=
BIT
(
A_AXIS
);
// Motor A direction
if
(
da
<
0
)
d
ir
b
|=
BIT
(
A_AXIS
);
// Motor A direction
if
(
dc
<
0
)
db
|=
BIT
(
C_AXIS
);
// Motor B direction
if
(
dc
<
0
)
d
ir
b
|=
BIT
(
C_AXIS
);
// Motor B direction
#else
#else
if
(
dx
<
0
)
db
|=
BIT
(
X_AXIS
);
if
(
dx
<
0
)
d
ir
b
|=
BIT
(
X_AXIS
);
if
(
dy
<
0
)
db
|=
BIT
(
Y_AXIS
);
if
(
dy
<
0
)
d
ir
b
|=
BIT
(
Y_AXIS
);
if
(
dz
<
0
)
db
|=
BIT
(
Z_AXIS
);
if
(
dz
<
0
)
d
ir
b
|=
BIT
(
Z_AXIS
);
#endif
#endif
if
(
de
<
0
)
db
|=
BIT
(
E_AXIS
);
if
(
de
<
0
)
d
ir
b
|=
BIT
(
E_AXIS
);
block
->
direction_bits
=
db
;
block
->
direction_bits
=
d
ir
b
;
block
->
active_driver
=
driver
;
block
->
active_driver
=
driver
;
//
e
nable active axes
//
E
nable active axes
#if ENABLED(COREXY)
#if ENABLED(COREXY)
if
(
block
->
steps
[
A_AXIS
]
||
block
->
steps
[
B_AXIS
])
{
if
(
block
->
steps
[
A_AXIS
]
||
block
->
steps
[
B_AXIS
])
{
enable_x
();
enable_x
();
...
...
MarlinKimbra/ultralcd.cpp
View file @
45fc6b0c
...
@@ -2259,104 +2259,130 @@ char *ftostr52(const float &x) {
...
@@ -2259,104 +2259,130 @@ char *ftostr52(const float &x) {
#include "configuration_store.h"
#include "configuration_store.h"
#include "Nextion.h"
#include "Nextion.h"
bool
NextionON
=
false
;
bool
NextionON
=
false
;
char
buffer
[
100
]
=
{
0
};
bool
PageInfo
=
false
;
char
buffer
[
100
]
=
{
0
};
char
lcd_status_message
[
30
]
=
WELCOME_MSG
;
// worst case is kana with up to 3*LCD_WIDTH+1
char
lcd_status_message
[
30
]
=
WELCOME_MSG
;
// worst case is kana with up to 3*LCD_WIDTH+1
uint8_t
lcd_status_message_level
=
0
;
uint8_t
lcd_status_message_level
=
0
;
// Text
// Text
NexText
Hotend0
=
NexText
(
1
,
3
,
"t0"
);
NexText
Hotend0
=
NexText
(
1
,
1
,
"t0"
);
NexText
Hotend1
=
NexText
(
1
,
7
,
"t1"
);
NexText
Hotend1
=
NexText
(
1
,
4
,
"t1"
);
NexText
Hotend2
=
NexText
(
1
,
9
,
"t2"
);
NexText
Hotend2
=
NexText
(
1
,
5
,
"t2"
);
NexText
Hotend3
=
NexText
(
1
,
12
,
"t3"
);
NexText
Hotend21
=
NexText
(
1
,
6
,
"h2"
);
NexText
Bed
=
NexText
(
1
,
16
,
"t4"
);
NexText
LedStatus
=
NexText
(
1
,
7
,
"t4"
);
NexText
LedStatus
=
NexText
(
1
,
26
,
"t5"
);
NexText
LedCoord
=
NexText
(
1
,
8
,
"t5"
);
NexText
LedCoord
=
NexText
(
1
,
27
,
"t6"
);
NexText
set0
=
NexText
(
2
,
2
,
"set0"
);
NexText
set0
=
NexText
(
2
,
2
,
"set0"
);
NexText
set1
=
NexText
(
2
,
15
,
"set1"
);
NexText
set1
=
NexText
(
2
,
15
,
"set1"
);
// Picture
NexPicture
Menu
=
NexPicture
(
1
,
10
,
"p0"
);
NexPicture
MSD
=
NexPicture
(
1
,
11
,
"p1"
);
NexPicture
MSetup
=
NexPicture
(
1
,
12
,
"p2"
);
NexPicture
Hend0
=
NexPicture
(
1
,
13
,
"p3"
);
NexPicture
Hend1
=
NexPicture
(
1
,
14
,
"p4"
);
NexPicture
Hend2
=
NexPicture
(
1
,
15
,
"p5"
);
NexPicture
Fanpic
=
NexPicture
(
1
,
19
,
"p6"
);
// Progress Bar
// Progress Bar
NexProgressBar
jp0
=
NexProgressBar
(
1
,
2
,
"jp0"
);
NexProgressBar
jp1
=
NexProgressBar
(
1
,
5
,
"jp1"
);
// Wafeform
NexProgressBar
jp2
=
NexProgressBar
(
1
,
8
,
"jp2"
);
NexWaveform
Graph0
=
NexWaveform
(
1
,
9
,
"s0"
);
NexProgressBar
jp3
=
NexProgressBar
(
1
,
11
,
"jp3"
);
NexProgressBar
jp4
=
NexProgressBar
(
1
,
14
,
"jp4"
);
// Touch area
// Touch area
NexHotspot
homex
=
NexHotspot
(
1
,
17
,
"homex"
);
NexHotspot
hot0
=
NexHotspot
(
1
,
14
,
"hot0"
);
NexHotspot
homey
=
NexHotspot
(
1
,
18
,
"homey"
);
NexHotspot
hot1
=
NexHotspot
(
1
,
16
,
"hot1"
);
NexHotspot
homez
=
NexHotspot
(
1
,
19
,
"homez"
);
NexHotspot
hot2
=
NexHotspot
(
1
,
18
,
"hot2"
);
NexHotspot
home0
=
NexHotspot
(
1
,
20
,
"home0"
);
NexHotspot
hot0
=
NexHotspot
(
1
,
21
,
"hot0"
);
NexHotspot
hot1
=
NexHotspot
(
1
,
22
,
"hot1"
);
NexHotspot
hot2
=
NexHotspot
(
1
,
23
,
"hot2"
);
NexHotspot
hot3
=
NexHotspot
(
1
,
24
,
"hot3"
);
NexHotspot
hot4
=
NexHotspot
(
1
,
25
,
"hot4"
);
NexHotspot
m11
=
NexHotspot
(
2
,
14
,
"m11"
);
NexHotspot
m11
=
NexHotspot
(
2
,
14
,
"m11"
);
NexHotspot
tup
=
NexHotspot
(
2
,
16
,
"tup"
);
NexHotspot
tup
=
NexHotspot
(
2
,
16
,
"tup"
);
NexHotspot
tdown
=
NexHotspot
(
2
,
17
,
"tdown"
);
NexHotspot
tdown
=
NexHotspot
(
2
,
17
,
"tdown"
);
NexTouch
*
nex
ListenList
[]
=
NexTouch
*
nex
_listen_list
[]
=
{
{
&
homex
,
&
Menu
,
&
homey
,
&
MSD
,
&
homez
,
&
MSetup
,
&
home0
,
&
Fanpic
,
&
hot0
,
&
hot0
,
&
hot1
,
&
hot1
,
&
hot2
,
&
hot2
,
&
hot3
,
&
hot4
,
&
m11
,
&
m11
,
&
tup
,
&
tup
,
&
tdown
,
&
tdown
,
NULL
NULL
};
};
void
homePopCallback
(
void
*
ptr
)
{
void
setpageInfo
()
{
if
(
ptr
==
&
homex
)
sendCommand
(
"page info"
);
enqueuecommands_P
(
PSTR
(
"G28 X"
));
else
if
(
ptr
==
&
homey
)
PageInfo
=
true
;
enqueuecommands_P
(
PSTR
(
"G28 Y"
));
else
if
(
ptr
==
&
homey
)
#if HAS_TEMP_0
enqueuecommands_P
(
PSTR
(
"G28 Z"
));
Hend0
.
setPic
(
7
);
else
if
(
ptr
==
&
home0
)
#endif
enqueuecommands_P
(
PSTR
(
"G28"
));
#if HAS_TEMP_1
Hend1
.
setPic
(
7
);
#endif
#if HAS_TEMP_1
Hend2
.
setPic
(
7
);
#elif HAS_TEMP_BED
Hotend21
.
setText
(
"BED"
);
Hend2
.
setPic
(
8
);
#endif
#if ENABLED(SDSUPPORT)
MSD
.
setPic
(
4
);
#endif
}
void
setFan
()
{
uint32_t
number
=
0
;
Fanpic
.
getPic
(
&
number
);
if
(
number
==
9
)
number
=
10
;
else
number
=
9
;
Fanpic
.
setPic
(
number
);
}
}
void
hotPopCallback
(
void
*
ptr
)
{
void
hotPopCallback
(
void
*
ptr
)
{
sendCommand
(
"page 2"
);
sendCommand
(
"page 2"
);
PageInfo
=
false
;
memset
(
buffer
,
0
,
sizeof
(
buffer
));
memset
(
buffer
,
0
,
sizeof
(
buffer
));
if
(
ptr
==
&
hot0
)
{
if
(
ptr
==
&
hot0
)
{
if
(
degTargetHotend
(
0
)
!=
0
)
{
if
(
degTargetHotend
(
0
)
!=
0
)
{
itoa
(
degTargetHotend
(
0
),
buffer
,
10
);
itoa
(
degTargetHotend
(
0
),
buffer
,
10
);
}
}
set1
.
setText
(
"M104 T0 S"
);
set1
.
setText
(
"M104 T0 S"
);
sendCommand
(
"page 2"
);
}
}
if
(
ptr
==
&
hot1
)
{
if
(
ptr
==
&
hot1
)
{
if
(
degTargetHotend
(
1
)
!=
0
)
{
if
(
degTargetHotend
(
1
)
!=
0
)
{
itoa
(
degTargetHotend
(
1
),
buffer
,
10
);
itoa
(
degTargetHotend
(
1
),
buffer
,
10
);
}
}
set1
.
setText
(
"M104 T1 S"
);
set1
.
setText
(
"M104 T1 S"
);
sendCommand
(
"page 2"
);
}
}
if
(
ptr
==
&
hot2
)
{
if
(
degTargetHotend
(
2
)
!=
0
)
{
#if HAS_TEMP_2
itoa
(
degTargetHotend
(
2
),
buffer
,
10
);
if
(
ptr
==
&
hot2
)
{
}
if
(
degTargetHotend
(
2
)
!=
0
)
{
set1
.
setText
(
"M104 T2 S"
);
itoa
(
degTargetHotend
(
2
),
buffer
,
10
);
}
}
if
(
ptr
==
&
hot3
)
{
set1
.
setText
(
"M104 T2 S"
);
if
(
degTargetHotend
(
3
)
!=
0
)
{
sendCommand
(
"page 2"
);
itoa
(
degTargetHotend
(
3
),
buffer
,
10
);
}
}
set1
.
setText
(
"M104 T3 S"
);
#elif HAS_TEMP_BED
}
if
(
ptr
==
&
hot2
)
{
if
(
ptr
==
&
hot4
)
{
if
(
degTargetBed
()
!=
0
)
{
if
(
degTargetBed
()
!=
0
)
{
itoa
(
degTargetBed
(),
buffer
,
10
);
itoa
(
degTargetBed
(),
buffer
,
10
);
}
set1
.
setText
(
"M140 S"
);
}
}
set1
.
setText
(
"M140 S"
);
#endif
}
set0
.
setText
(
buffer
);
set0
.
setText
(
buffer
);
}
}
...
@@ -2381,10 +2407,24 @@ void sethotPopCallback(void *ptr) {
...
@@ -2381,10 +2407,24 @@ void sethotPopCallback(void *ptr) {
memset
(
buffer
,
0
,
sizeof
(
buffer
));
memset
(
buffer
,
0
,
sizeof
(
buffer
));
set1
.
getText
(
buffer
,
sizeof
(
buffer
));
set1
.
getText
(
buffer
,
sizeof
(
buffer
));
enqueuecommands_P
(
buffer
);
enqueuecommands_P
(
buffer
);
se
ndCommand
(
"page menu"
);
se
tpageInfo
(
);
lcd_setstatus
(
lcd_status_message
);
lcd_setstatus
(
lcd_status_message
);
}
}
void
setpagePopCallback
(
void
*
ptr
)
{
if
(
ptr
==
&
Menu
)
sendCommand
(
"page menu"
);
if
(
ptr
==
&
MSD
)
sendCommand
(
"page msd"
);
if
(
ptr
==
&
MSetup
)
sendCommand
(
"page setup"
);
}
void
setfanPopCallback
(
void
*
ptr
)
{
if
(
fanSpeed
)
fanSpeed
=
0
;
else
fanSpeed
=
255
;
}
millis_t
next_lcd_update_ms
;
millis_t
next_lcd_update_ms
;
void
lcd_init
()
{
void
lcd_init
()
{
...
@@ -2394,20 +2434,24 @@ void lcd_init() {
...
@@ -2394,20 +2434,24 @@ void lcd_init() {
}
}
else
{
else
{
ECHO_LM
(
DB
,
"Nextion LCD connected!"
);
ECHO_LM
(
DB
,
"Nextion LCD connected!"
);
homex
.
attachPop
(
homePopCallback
,
&
homex
);
#if HAS_TEMP_0
homey
.
attachPop
(
homePopCallback
,
&
homey
);
hot0
.
attachPop
(
hotPopCallback
,
&
hot0
);
homez
.
attachPop
(
homePopCallback
,
&
homez
);
#endif
home0
.
attachPop
(
homePopCallback
,
&
home0
);
#if HAS_TEMP_1
hot0
.
attachPop
(
hotPopCallback
,
&
hot0
);
hot1
.
attachPop
(
hotPopCallback
,
&
hot1
);
hot1
.
attachPop
(
hotPopCallback
,
&
hot1
);
#endif
hot2
.
attachPop
(
hotPopCallback
,
&
hot2
);
#if HAS_TEMP_2 || HAS_TEMP_BED
hot3
.
attachPop
(
hotPopCallback
,
&
hot3
);
hot2
.
attachPop
(
hotPopCallback
,
&
hot2
);
hot4
.
attachPop
(
hotPopCallback
,
&
hot4
);
#endif
m11
.
attachPop
(
sethotPopCallback
,
&
m11
);
Menu
.
attachPop
(
setpagePopCallback
,
&
Menu
);
tup
.
attachPop
(
settempPopCallback
,
&
tup
);
MSD
.
attachPop
(
setpagePopCallback
,
&
MSD
);
tdown
.
attachPop
(
settempPopCallback
,
&
tdown
);
MSetup
.
attachPop
(
setpagePopCallback
,
&
Menu
);
Fanpic
.
attachPop
(
setfanPopCallback
,
&
Fanpic
);
m11
.
attachPop
(
sethotPopCallback
,
&
m11
);
tup
.
attachPop
(
settempPopCallback
,
&
tup
);
tdown
.
attachPop
(
settempPopCallback
,
&
tdown
);
delay
(
SPLASH_SCREEN_DURATION
);
// wait to display the splash screen
delay
(
SPLASH_SCREEN_DURATION
);
// wait to display the splash screen
se
ndCommand
(
"page menu"
);
se
tpageInfo
(
);
lcd_setstatus
(
WELCOME_MSG
);
lcd_setstatus
(
WELCOME_MSG
);
}
}
}
}
...
@@ -2422,8 +2466,6 @@ static void temptoLCD(int h, int T1, int T2) {
...
@@ -2422,8 +2466,6 @@ static void temptoLCD(int h, int T1, int T2) {
strcat
(
buffer
,
valuetemp
);
strcat
(
buffer
,
valuetemp
);
uint32_t
color
=
1023
;
uint32_t
color
=
1023
;
uint32_t
prc
=
(
T1
/
(
T2
+
0.1
))
*
100
;
uint32_t
prc
=
(
T1
/
(
T2
+
0.1
))
*
100
;
String
tempprc
=
String
(
prc
);
String
bar_id
=
"j"
+
String
(
h
);
if
(
prc
>=
50
&&
prc
<
75
)
if
(
prc
>=
50
&&
prc
<
75
)
color
=
65519
;
color
=
65519
;
...
@@ -2437,35 +2479,21 @@ static void temptoLCD(int h, int T1, int T2) {
...
@@ -2437,35 +2479,21 @@ static void temptoLCD(int h, int T1, int T2) {
{
{
Hotend0
.
setText
(
buffer
);
Hotend0
.
setText
(
buffer
);
Hotend0
.
setColor
(
color
);
Hotend0
.
setColor
(
color
);
jp0
.
setValue
(
prc
);
Graph0
.
addValue
(
0
,
T1
);
break
;
break
;
}
}
case
1
:
case
1
:
{
{
Hotend1
.
setText
(
buffer
);
Hotend1
.
setText
(
buffer
);
Hotend1
.
setColor
(
color
);
Hotend1
.
setColor
(
color
);
jp1
.
setValue
(
prc
);
Graph0
.
addValue
(
1
,
T1
);
break
;
break
;
}
}
case
2
:
case
2
:
{
{
Hotend2
.
setText
(
buffer
);
Hotend2
.
setText
(
buffer
);
Hotend2
.
setColor
(
color
);
Hotend2
.
setColor
(
color
);
jp2
.
setValue
(
prc
);
Graph0
.
addValue
(
2
,
T1
);
break
;
}
case
3
:
{
Hotend3
.
setText
(
buffer
);
Hotend3
.
setColor
(
color
);
jp3
.
setValue
(
prc
);
break
;
}
case
4
:
{
Bed
.
setText
(
buffer
);
Bed
.
setColor
(
color
);
jp4
.
setValue
(
prc
);
break
;
break
;
}
}
}
}
...
@@ -2514,16 +2542,24 @@ void lcd_update() {
...
@@ -2514,16 +2542,24 @@ void lcd_update() {
if
(
!
NextionON
)
return
;
if
(
!
NextionON
)
return
;
millis_t
ms
=
millis
(
);
nexLoop
(
nex_listen_list
);
if
(
ms
>
next_lcd_update_ms
)
{
millis_t
ms
=
millis
();
nexLoop
(
nexListenList
);
if
(
ms
>
next_lcd_update_ms
&&
PageInfo
)
{
for
(
int
h
=
0
;
h
<
HOTENDS
;
h
++
)
temptoLCD
(
h
,
degHotend
(
h
),
degTargetHotend
(
h
)
);
if
(
fanSpeed
>
0
)
setFan
(
);
#if TEMP_SENSOR_BED != 0
#if HAS_TEMP_0
temptoLCD
(
4
,
degBed
(),
degTargetBed
());
temptoLCD
(
0
,
degHotend
(
0
),
degTargetHotend
(
0
));
#endif
#if HAS_TEMP_1
temptoLCD
(
1
,
degHotend
(
1
),
degTargetHotend
(
1
));
#endif
#if HAS_TEMP_2
temptoLCD
(
2
,
degHotend
(
2
),
degTargetHotend
(
2
));
#elif HAS_TEMP_BED
temptoLCD
(
2
,
degBed
(),
degTargetBed
());
#endif
#endif
coordtoLCD
();
coordtoLCD
();
...
...
MarlinKimbra/ultralcd.h
View file @
45fc6b0c
...
@@ -114,12 +114,13 @@
...
@@ -114,12 +114,13 @@
#elif ENABLED(NEXTION)
#elif ENABLED(NEXTION)
#define LCD_UPDATE_INTERVAL 100
0
#define LCD_UPDATE_INTERVAL 100
void
hom
ePopCallback
(
void
*
ptr
);
void
setpag
ePopCallback
(
void
*
ptr
);
void
hotPopCallback
(
void
*
ptr
);
void
hotPopCallback
(
void
*
ptr
);
void
sethotPopCallback
(
void
*
ptr
);
void
sethotPopCallback
(
void
*
ptr
);
void
settempPopCallback
(
void
*
ptr
);
void
settempPopCallback
(
void
*
ptr
);
void
setfanPopCallback
(
void
*
ptr
);
void
lcd_update
();
void
lcd_update
();
void
lcd_init
();
void
lcd_init
();
void
lcd_setstatus
(
const
char
*
message
,
const
bool
persist
=
false
);
void
lcd_setstatus
(
const
char
*
message
,
const
bool
persist
=
false
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment