summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/driver/ssd1306.h4
-rw-r--r--src/driver/ssd1306.cc11
2 files changed, 14 insertions, 1 deletions
diff --git a/include/driver/ssd1306.h b/include/driver/ssd1306.h
index 4a2cf01..2afcb86 100644
--- a/include/driver/ssd1306.h
+++ b/include/driver/ssd1306.h
@@ -56,7 +56,7 @@ class SSD1306 {
SSD1306_SET_DISP_CLK_DIV, 0x80,
SSD1306_SET_PRECHARGE, 0xf1,
SSD1306_SET_VCOM_DESEL, 0x30,
- SSD1306_SET_CONTRAST, 0xff,
+ SSD1306_SET_CONTRAST, 0x7f,
SSD1306_SET_ENTIRE_ON,
SSD1306_SET_NORM_INV,
SSD1306_SET_CHARGE_PUMP, 0x14,
@@ -70,6 +70,8 @@ class SSD1306 {
SSD1306() {}
void init();
+ void setContrast(unsigned char contrast);
+ void setInvert(bool invert);
void showImage(unsigned char* data, uint16_t length);
};
diff --git a/src/driver/ssd1306.cc b/src/driver/ssd1306.cc
index 69bd28c..23b938d 100644
--- a/src/driver/ssd1306.cc
+++ b/src/driver/ssd1306.cc
@@ -30,6 +30,17 @@ void SSD1306::init()
}
}
+void SSD1306::setContrast(unsigned char contrast)
+{
+ writeCommand(SSD1306_SET_CONTRAST);
+ writeCommand(contrast);
+}
+
+void SSD1306::setInvert(bool invert)
+{
+ writeCommand(SSD1306_SET_NORM_INV | invert);
+}
+
void SSD1306::showImage(unsigned char* data, uint16_t length)
{
uint8_t i;