summaryrefslogtreecommitdiff
path: root/obdlogger/MultiLCD.h
diff options
context:
space:
mode:
authorStanley Huang <stanleyhuangyc@gmail.com>2013-04-20 12:40:25 +0800
committerStanley Huang <stanleyhuangyc@gmail.com>2013-04-20 12:40:25 +0800
commit06cac07f9bca7fe50cf3b96184e5b8707606108a (patch)
tree3b42d37316485bc5f9bbeb9d7423026380bb9fd5 /obdlogger/MultiLCD.h
parent58cf18a5ebb3d31b7c2933b5d76fceaa6659affd (diff)
download2021-arduino-obd-06cac07f9bca7fe50cf3b96184e5b8707606108a.tar.gz
2021-arduino-obd-06cac07f9bca7fe50cf3b96184e5b8707606108a.tar.bz2
2021-arduino-obd-06cac07f9bca7fe50cf3b96184e5b8707606108a.zip
update MultiLCD library
Diffstat (limited to 'obdlogger/MultiLCD.h')
-rw-r--r--obdlogger/MultiLCD.h46
1 files changed, 40 insertions, 6 deletions
diff --git a/obdlogger/MultiLCD.h b/obdlogger/MultiLCD.h
index 2a10356..b8adfeb 100644
--- a/obdlogger/MultiLCD.h
+++ b/obdlogger/MultiLCD.h
@@ -3,23 +3,42 @@ extern const PROGMEM unsigned char font5x8[][5];
#include "PCD8544.h"
-class LCD_PCD8544 : public PCD8544 {
+class LCD_Common
+{
public:
+ virtual void backlight(bool on) {}
+ virtual byte getLines() = 0;
+ virtual byte getCols() = 0;
+};
+
+class LCD_PCD8544 : public LCD_Common, public PCD8544
+{
+public:
+ byte getLines() { return 6; }
+ byte getCols() { return 14; }
void printLarge(const char* s);
void backlight(bool on)
{
pinMode(7, OUTPUT);
digitalWrite(7, on ? HIGH : LOW);
}
+ void clearLine(byte line)
+ {
+ setCursor(0, line);
+ for (byte i = 14; i > 0; i--) write(' ');
+ }
};
#include "ZtLib.h"
#define OLED_ADDRESS 0x27
-class LCD_OLED : public ZtLib {
+class LCD_OLED : public LCD_Common, public ZtLib
+{
public:
- void setCursor(unsigned char column, unsigned char line)
+ byte getLines() { return 4; }
+ byte getCols() { return 16; }
+ void setCursor(byte column, byte line)
{
m_column = column << 3;
m_line = line << 1;
@@ -30,15 +49,30 @@ public:
void clear();
void begin();
void backlight(bool on) {}
+ void clearLine(byte line)
+ {
+ setCursor(0, line);
+ for (byte i = 16; i > 0; i--) write(' ');
+ }
private:
unsigned char m_column;
unsigned char m_line;
};
#include "LCD4Bit_mod.h"
-class LCD_1602 : public LCD4Bit_mod {
+class LCD_1602 : public LCD_Common, public LCD4Bit_mod
+{
public:
- void printLarge(const char* s) { print(s); }
- void backlight(bool on) {}
+ byte getLines() { return 2; }
+ byte getCols() { return 16; }
+ void printLarge(const char* s)
+ {
+ print(s);
+ }
+ void clearLine(byte line)
+ {
+ setCursor(0, line);
+ for (byte i = 16; i > 0; i--) write(' ');
+ }
};