From 17340c239674f5381da873c06bc8f91ff43b60be Mon Sep 17 00:00:00 2001 From: Saleem Rashid Date: Sat, 16 Dec 2017 20:39:43 +0000 Subject: [PATCH] emulator: Show DEBUG_LINK indicator --- emulator/oled.c | 6 ++++++ oled.c | 27 +++++++++++++-------------- oled.h | 2 ++ 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/emulator/oled.c b/emulator/oled.c index 242408a..8f58759 100644 --- a/emulator/oled.c +++ b/emulator/oled.c @@ -58,6 +58,9 @@ void oledInit(void) { } void oledRefresh(void) { + /* Draw triangle in upper right corner */ + oledInvertDebugLink(); + const uint8_t *buffer = oledGetBuffer(); static uint32_t data[OLED_HEIGHT][OLED_WIDTH]; @@ -75,6 +78,9 @@ void oledRefresh(void) { SDL_UpdateTexture(texture, NULL, data, OLED_WIDTH * sizeof(uint32_t)); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_RenderPresent(renderer); + + /* Return it back */ + oledInvertDebugLink(); } void emulatorPoll(void) { diff --git a/oled.c b/oled.c index 7b1d5fc..569b448 100644 --- a/oled.c +++ b/oled.c @@ -180,6 +180,17 @@ void oledClear() memset(_oledbuffer, 0, sizeof(_oledbuffer)); } +void oledInvertDebugLink() +{ + if (is_debug_link) { + oledInvertPixel(OLED_WIDTH - 5, 0); oledInvertPixel(OLED_WIDTH - 4, 0); oledInvertPixel(OLED_WIDTH - 3, 0); oledInvertPixel(OLED_WIDTH - 2, 0); oledInvertPixel(OLED_WIDTH - 1, 0); + oledInvertPixel(OLED_WIDTH - 4, 1); oledInvertPixel(OLED_WIDTH - 3, 1); oledInvertPixel(OLED_WIDTH - 2, 1); oledInvertPixel(OLED_WIDTH - 1, 1); + oledInvertPixel(OLED_WIDTH - 3, 2); oledInvertPixel(OLED_WIDTH - 2, 2); oledInvertPixel(OLED_WIDTH - 1, 2); + oledInvertPixel(OLED_WIDTH - 2, 3); oledInvertPixel(OLED_WIDTH - 1, 3); + oledInvertPixel(OLED_WIDTH - 1, 4); + } +} + /* * Refresh the display. This copies the buffer to the display to show the * contents. This must be called after every operation to the buffer to @@ -192,13 +203,7 @@ void oledRefresh() static const uint8_t s[3] = {OLED_SETLOWCOLUMN | 0x00, OLED_SETHIGHCOLUMN | 0x00, OLED_SETSTARTLINE | 0x00}; // draw triangle in upper right corner - if (is_debug_link) { - oledInvertPixel(OLED_WIDTH - 5, 0); oledInvertPixel(OLED_WIDTH - 4, 0); oledInvertPixel(OLED_WIDTH - 3, 0); oledInvertPixel(OLED_WIDTH - 2, 0); oledInvertPixel(OLED_WIDTH - 1, 0); - oledInvertPixel(OLED_WIDTH - 4, 1); oledInvertPixel(OLED_WIDTH - 3, 1); oledInvertPixel(OLED_WIDTH - 2, 1); oledInvertPixel(OLED_WIDTH - 1, 1); - oledInvertPixel(OLED_WIDTH - 3, 2); oledInvertPixel(OLED_WIDTH - 2, 2); oledInvertPixel(OLED_WIDTH - 1, 2); - oledInvertPixel(OLED_WIDTH - 2, 3); oledInvertPixel(OLED_WIDTH - 1, 3); - oledInvertPixel(OLED_WIDTH - 1, 4); - } + oledInvertDebugLink(); gpio_clear(OLED_CS_PORT, OLED_CS_PIN); // SPI select SPISend(SPI_BASE, s, 3); @@ -211,13 +216,7 @@ void oledRefresh() gpio_clear(OLED_DC_PORT, OLED_DC_PIN); // set to CMD // return it back - if (is_debug_link) { - oledInvertPixel(OLED_WIDTH - 5, 0); oledInvertPixel(OLED_WIDTH - 4, 0); oledInvertPixel(OLED_WIDTH - 3, 0); oledInvertPixel(OLED_WIDTH - 2, 0); oledInvertPixel(OLED_WIDTH - 1, 0); - oledInvertPixel(OLED_WIDTH - 4, 1); oledInvertPixel(OLED_WIDTH - 3, 1); oledInvertPixel(OLED_WIDTH - 2, 1); oledInvertPixel(OLED_WIDTH - 1, 1); - oledInvertPixel(OLED_WIDTH - 3, 2); oledInvertPixel(OLED_WIDTH - 2, 2); oledInvertPixel(OLED_WIDTH - 1, 2); - oledInvertPixel(OLED_WIDTH - 2, 3); oledInvertPixel(OLED_WIDTH - 1, 3); - oledInvertPixel(OLED_WIDTH - 1, 4); - } + oledInvertDebugLink(); } #endif diff --git a/oled.h b/oled.h index 9c5531a..845e1e2 100644 --- a/oled.h +++ b/oled.h @@ -35,6 +35,8 @@ void oledClear(void); void oledRefresh(void); void oledSetDebugLink(bool set); +void oledInvertDebugLink(void); + void oledSetBuffer(uint8_t *buf); const uint8_t *oledGetBuffer(void); void oledDrawPixel(int x, int y);