diff options
author | Stanley Huang <stanleyhuangyc@gmail.com> | 2013-04-20 17:19:39 +0800 |
---|---|---|
committer | Stanley Huang <stanleyhuangyc@gmail.com> | 2013-04-20 17:19:39 +0800 |
commit | 1d62e07da40ba9225dfe4f7e93129d4d7da03ccb (patch) | |
tree | d75c0b9de08a5ae7f8d4a6bc9ad029fcf98e2c9c | |
parent | 419e04efbdd1498a3f726c3a2d49d429fcb0cf92 (diff) | |
download | 2021-arduino-obd-1d62e07da40ba9225dfe4f7e93129d4d7da03ccb.tar.gz 2021-arduino-obd-1d62e07da40ba9225dfe4f7e93129d4d7da03ccb.tar.bz2 2021-arduino-obd-1d62e07da40ba9225dfe4f7e93129d4d7da03ccb.zip |
update MultiLCD library
-rw-r--r-- | libraries/MultiLCD/MultiLCD.cpp | 15 | ||||
-rw-r--r-- | libraries/MultiLCD/MultiLCD.h | 2 |
2 files changed, 14 insertions, 3 deletions
diff --git a/libraries/MultiLCD/MultiLCD.cpp b/libraries/MultiLCD/MultiLCD.cpp index 22112d1..cff82c2 100644 --- a/libraries/MultiLCD/MultiLCD.cpp +++ b/libraries/MultiLCD/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 += 2; + } } 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 += 2; + } s++; } } diff --git a/libraries/MultiLCD/MultiLCD.h b/libraries/MultiLCD/MultiLCD.h index 2a10356..35016aa 100644 --- a/libraries/MultiLCD/MultiLCD.h +++ b/libraries/MultiLCD/MultiLCD.h @@ -22,7 +22,7 @@ public: void setCursor(unsigned char column, unsigned char line) { m_column = column << 3; - m_line = line << 1; + m_line = line == -1 ? m_line + 2 : (line << 1); } void write(char c); void print(const char* s); |