diff --git a/src/OLEDDisplay.cpp b/src/OLEDDisplay.cpp index dca2ad1..ac6b139 100644 --- a/src/OLEDDisplay.cpp +++ b/src/OLEDDisplay.cpp @@ -41,7 +41,8 @@ OLEDDisplay::OLEDDisplay() { displayWidth = 128; displayHeight = 64; - displayBufferSize = displayWidth * displayHeight / 8; + maxDisplayHeight = ((displayHeight + 7) / 8) * 8; + displayBufferSize = displayWidth * maxDisplayHeight / 8; color = WHITE; geometry = GEOMETRY_128_64; textAlignment = TEXT_ALIGN_LEFT; @@ -1001,7 +1002,8 @@ void OLEDDisplay::setGeometry(OLEDDISPLAY_GEOMETRY g, uint16_t width, uint16_t h this->displayHeight = height > 0 ? height : 64; break; } - this->displayBufferSize = displayWidth * displayHeight / 8; + maxDisplayHeight = ((displayHeight + 7) / 8) * 8; + this->displayBufferSize = displayWidth * maxDisplayHeight / 8; } void OLEDDisplay::sendInitCommands(void) { diff --git a/src/OLEDDisplay.h b/src/OLEDDisplay.h index 23e6845..42edc76 100644 --- a/src/OLEDDisplay.h +++ b/src/OLEDDisplay.h @@ -354,6 +354,7 @@ class OLEDDisplay : public Stream { uint16_t displayWidth; uint16_t displayHeight; + uint16_t maxDisplayHeight; uint16_t displayBufferSize; OLEDDISPLAY_TEXT_ALIGNMENT textAlignment;