send CR+LF (command terminator) first at refreshDisplay()
Sometimes BOXF (box fill) command at refreshDisplay() fails. Normally this is not occured, but running MMDVMHost for long time (about one day) we see this problem. The reason is unknown. But if LCD panel receives garbage character between calling refreshDisplay(), first command (BOXF) at latter-called refresDdisplay() will fail. For workaround, send CR+LF command terminator first at this function.
This commit is contained in:
parent
2a9d90b7c7
commit
a117d70c56
1 changed files with 5 additions and 1 deletions
|
@ -63,7 +63,7 @@ enum LcdColour {
|
||||||
#define MODE_CHARS (X_WIDTH / (MODE_FONT_SIZE / 2))
|
#define MODE_CHARS (X_WIDTH / (MODE_FONT_SIZE / 2))
|
||||||
#define STATUS_CHARS (X_WIDTH / (STATUS_FONT_SIZE / 2))
|
#define STATUS_CHARS (X_WIDTH / (STATUS_FONT_SIZE / 2))
|
||||||
#define STATUS_LINES ((Y_WIDTH - STATUS_MARGIN) / STATUS_FONT_SIZE)
|
#define STATUS_LINES ((Y_WIDTH - STATUS_MARGIN) / STATUS_FONT_SIZE)
|
||||||
#define statusLine_offset(x) ((STATUS_CHARS + 1) * ((x) + 1))
|
#define statusLine_offset(x) ((STATUS_CHARS + 1) * ((x) + 1))
|
||||||
|
|
||||||
// This module sometimes ignores display command (too busy?),
|
// This module sometimes ignores display command (too busy?),
|
||||||
// so supress display refresh
|
// so supress display refresh
|
||||||
|
@ -374,6 +374,10 @@ void CTFTSurenoo::refreshDisplay(void)
|
||||||
{
|
{
|
||||||
if (!m_refresh) return;
|
if (!m_refresh) return;
|
||||||
|
|
||||||
|
// send CR+LF to avoid first command is not processed
|
||||||
|
::snprintf(m_temp, sizeof(m_temp), STR_CRLF);
|
||||||
|
m_serial->write((unsigned char*)m_temp, (unsigned int)::strlen(m_temp));
|
||||||
|
|
||||||
// clear display
|
// clear display
|
||||||
::snprintf(m_temp, sizeof(m_temp), "BOXF(%d,%d,%d,%d,%d);",
|
::snprintf(m_temp, sizeof(m_temp), "BOXF(%d,%d,%d,%d,%d);",
|
||||||
0, 0, X_WIDTH - 1, Y_WIDTH - 1, BG_COLOUR);
|
0, 0, X_WIDTH - 1, Y_WIDTH - 1, BG_COLOUR);
|
||||||
|
|
Loading…
Reference in a new issue