From 83ca2a006bd4ff7942dd076ac00f1f706bc6b859 Mon Sep 17 00:00:00 2001 From: mstrVLT Date: Tue, 5 Feb 2019 02:38:30 +0300 Subject: [PATCH] =?UTF-8?q?Wemos=20OLED=20Shield=20(64=C3=9748)=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Adafruit_SSD1306.cpp | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/Adafruit_SSD1306.cpp b/Adafruit_SSD1306.cpp index 46218d7d..f5c27a8b 100644 --- a/Adafruit_SSD1306.cpp +++ b/Adafruit_SSD1306.cpp @@ -885,14 +885,25 @@ uint8_t *Adafruit_SSD1306::getBuffer(void) { */ void Adafruit_SSD1306::display(void) { TRANSACTION_START - static const uint8_t PROGMEM dlist1[] = { - SSD1306_PAGEADDR, - 0, // Page start address - 0xFF, // Page end (not really, but works here) - SSD1306_COLUMNADDR, - 0 }; // Column start address - ssd1306_commandList(dlist1, sizeof(dlist1)); - ssd1306_command1(WIDTH - 1); // Column end address + if((WIDTH == 64) && (HEIGHT == 48)) { + static const uint8_t PROGMEM dlist1[] = { + SSD1306_PAGEADDR, + 0, // Page start address + 0xFF, // Page end (not really, but works here) + SSD1306_COLUMNADDR, + 32 }; // Column start address + ssd1306_commandList(dlist1, sizeof(dlist1)); + ssd1306_command1(32 + WIDTH - 1); // Column end address + } else { + static const uint8_t PROGMEM dlist1[] = { + SSD1306_PAGEADDR, + 0, // Page start address + 0xFF, // Page end (not really, but works here) + SSD1306_COLUMNADDR, + 0 }; // Column start address + ssd1306_commandList(dlist1, sizeof(dlist1)); + ssd1306_command1(WIDTH - 1); // Column end address + } #if defined(ESP8266) // ESP8266 needs a periodic yield() call to avoid watchdog reset.