|
|
@@ -18,17 +18,23 @@ bool SSD1306Display::begin() {
|
|
|
}
|
|
|
|
|
|
void SSD1306Display::turnOn() {
|
|
|
- display.ssd1306_command(SSD1306_DISPLAYON);
|
|
|
if (!_isOn) {
|
|
|
- if (_peripher_power) _peripher_power->claim();
|
|
|
+ if (_peripher_power) {
|
|
|
+ _peripher_power->claim();
|
|
|
+ begin();
|
|
|
+ }
|
|
|
_isOn = true;
|
|
|
}
|
|
|
+ display.ssd1306_command(SSD1306_DISPLAYON);
|
|
|
}
|
|
|
|
|
|
void SSD1306Display::turnOff() {
|
|
|
display.ssd1306_command(SSD1306_DISPLAYOFF);
|
|
|
if (_isOn) {
|
|
|
- if (_peripher_power) _peripher_power->release();
|
|
|
+ if (_peripher_power) {
|
|
|
+ if (PIN_OLED_RESET >= 0) digitalWrite(PIN_OLED_RESET, LOW);
|
|
|
+ _peripher_power->release();
|
|
|
+ }
|
|
|
_isOn = false;
|
|
|
}
|
|
|
}
|