From 06cac07f9bca7fe50cf3b96184e5b8707606108a Mon Sep 17 00:00:00 2001 From: Stanley Huang Date: Sat, 20 Apr 2013 12:40:25 +0800 Subject: update MultiLCD library --- obdlogger/MultiLCD.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'obdlogger/MultiLCD.cpp') diff --git a/obdlogger/MultiLCD.cpp b/obdlogger/MultiLCD.cpp index 22112d1..c611b14 100644 --- a/obdlogger/MultiLCD.cpp +++ b/obdlogger/MultiLCD.cpp @@ -118,12 +118,19 @@ void LCD_OLED::write(char c) { char s[2] = {c}; ScI2cMxDisplay8x16Str(OLED_ADDRESS, m_line, m_column, s); - m_column = (m_column + 8) & 0x7f; + m_column += 8; + if (m_column >= 128) { + m_column = 0; + m_line++; + } } void LCD_OLED::print(const char* s) { ScI2cMxDisplay8x16Str(OLED_ADDRESS, m_line, m_column, s); + m_column += (strlen(s) << 3); + m_line += (m_column >> 7) << 1; + m_column %= 0x7f; } void LCD_OLED::printLarge(const char* s) @@ -137,7 +144,11 @@ void LCD_OLED::printLarge(const char* s) } else { ScI2cMxFillArea(OLED_ADDRESS, m_line, m_line + 1, m_column, m_column + 16, 0); } - m_column = (m_column + 16) & 0x7f; + m_column += 16; + if (m_column >= 128) { + m_column = 0; + m_line++; + } s++; } } -- cgit v1.2.3