Skip to content

Commit 04b4a99

Browse files
committed
ST7789: Don't delay backlight wake unecessarily.
1 parent c127c63 commit 04b4a99

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

drivers/st7789/st7789.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ namespace pimoroni {
112112

113113
command(reg::INVON); // set inversion mode
114114
command(reg::SLPOUT); // leave sleep mode
115+
display_sleep = false;
115116

116117
configure_display(rotation);
117118

@@ -325,12 +326,14 @@ namespace pimoroni {
325326
float gamma = 2.8;
326327
uint16_t value = (uint16_t)(pow((float)(brightness) / 255.0f, gamma) * 65535.0f + 0.5f);
327328
pwm_set_gpio_level(bl, value);
328-
if(brightness == 0) {
329+
if(brightness == 0 && !display_sleep) {
329330
command(reg::SLPOUT); // leave sleep mode
330331
sleep_ms(5);
331-
} else {
332+
display_sleep = true;
333+
} else if (display_sleep) {
332334
command(reg::SLPOUT); // leave sleep mode
333335
sleep_ms(120);
336+
display_sleep = false;
334337
}
335338
}
336339
}

drivers/st7789/st7789.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ namespace pimoroni {
4444
uint parallel_offset;
4545
uint st_dma;
4646
bool display_on = false;
47+
bool display_sleep = false;
4748

4849

4950
// The ST7789 requires 16 ns between SPI rising edges.

0 commit comments

Comments
 (0)