SSD1680: fixed busy_wait

driver/ssd1680
thirdr 2025-05-02 16:16:53 +01:00
rodzic f616629fd3
commit 5ca6ee56d3
1 zmienionych plików z 5 dodań i 2 usunięć

Wyświetl plik

@ -32,7 +32,7 @@ namespace pimoroni {
bool SSD1680::is_busy() { bool SSD1680::is_busy() {
if(BUSY == PIN_UNUSED) return false; if(BUSY == PIN_UNUSED) return false;
return !gpio_get(BUSY); return gpio_get(BUSY);
} }
void SSD1680::busy_wait() { void SSD1680::busy_wait() {
@ -96,7 +96,7 @@ namespace pimoroni {
gpio_set_function(BUSY, GPIO_FUNC_SIO); gpio_set_function(BUSY, GPIO_FUNC_SIO);
gpio_set_dir(BUSY, GPIO_IN); 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(SCK, GPIO_FUNC_SPI);
gpio_set_function(MOSI, GPIO_FUNC_SPI); gpio_set_function(MOSI, GPIO_FUNC_SPI);
@ -108,6 +108,8 @@ namespace pimoroni {
reset(); reset();
command(SWR); command(SWR);
busy_wait();
command(DOC, {Y_START_L, Y_START_H, 0x00}); command(DOC, {Y_START_L, Y_START_H, 0x00});
command(SRX, {X_START, X_END}); command(SRX, {X_START, X_END});
command(SRY, {Y_START_L, Y_START_H, Y_END_L, Y_END_H}); command(SRY, {Y_START_L, Y_START_H, Y_END_L, Y_END_H});
@ -233,6 +235,7 @@ namespace pimoroni {
busy_wait(); busy_wait();
} }
command(SRXC, {X_START}); command(SRXC, {X_START});
command(SRYC, {Y_START_L, Y_START_H}); command(SRYC, {Y_START_L, Y_START_H});
command(WRAM_R, (width * height) / 8, bufA); command(WRAM_R, (width * height) / 8, bufA);