From 5ca6ee56d39531dbb10fb08dba69c8025598313b Mon Sep 17 00:00:00 2001 From: thirdr Date: Fri, 2 May 2025 16:16:53 +0100 Subject: [PATCH] SSD1680: fixed busy_wait --- drivers/ssd1680/ssd1680.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/ssd1680/ssd1680.cpp b/drivers/ssd1680/ssd1680.cpp index b1acc9a1..9d3f7c8b 100644 --- a/drivers/ssd1680/ssd1680.cpp +++ b/drivers/ssd1680/ssd1680.cpp @@ -32,7 +32,7 @@ namespace pimoroni { bool SSD1680::is_busy() { if(BUSY == PIN_UNUSED) return false; - return !gpio_get(BUSY); + return gpio_get(BUSY); } void SSD1680::busy_wait() { @@ -96,7 +96,7 @@ namespace pimoroni { gpio_set_function(BUSY, GPIO_FUNC_SIO); gpio_set_dir(BUSY, GPIO_IN); - gpio_set_pulls(BUSY, true, false); + gpio_set_pulls(BUSY, false, true); gpio_set_function(SCK, GPIO_FUNC_SPI); gpio_set_function(MOSI, GPIO_FUNC_SPI); @@ -108,6 +108,8 @@ namespace pimoroni { reset(); command(SWR); + busy_wait(); + command(DOC, {Y_START_L, Y_START_H, 0x00}); command(SRX, {X_START, X_END}); command(SRY, {Y_START_L, Y_START_H, Y_END_L, Y_END_H}); @@ -233,6 +235,7 @@ namespace pimoroni { busy_wait(); } + command(SRXC, {X_START}); command(SRYC, {Y_START_L, Y_START_H}); command(WRAM_R, (width * height) / 8, bufA);