diff options
| author | Maxwell Beck <max@rastertail.net> | 2026-10-27 21:34:51 -0500 |
|---|---|---|
| committer | Maxwell Beck <max@rastertail.net> | 2026-10-27 21:34:51 -0500 |
| commit | 089d9746daed303a343842ff652ac0a3547a455f (patch) | |
| tree | d5fbd837ad3083982cb7b7ec7d4e9e7a09c9504c /src/ssd1306.c | |
| parent | 5bc96cb00fd2b213aeef7ba87a0160d80b81dc45 (diff) | |
logo splashrewrite
Diffstat (limited to 'src/ssd1306.c')
| -rw-r--r-- | src/ssd1306.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/ssd1306.c b/src/ssd1306.c index e1c00ff..04991a2 100644 --- a/src/ssd1306.c +++ b/src/ssd1306.c @@ -77,22 +77,34 @@ int ssd_power_on(ssd1306_t *display) { return ssd_send(display); } -int ssd_push_char(ssd1306_t *display, const char c) { - uint8_t scr = ascii_to_screen[c]; +int ssd_putscr(ssd1306_t *display, const uint8_t c, bool shift) { + ssd_push(display, SSD1306_CTRL_DATA); for (int i = 0; i < 8; i++) { - int ret = ssd_push(display, c64_chars[scr + 256][i]); + int b; + if (shift) { + b = c64_chars[c + 256][i]; + } else { + b = c64_chars[c][i]; + } + + int ret = ssd_push(display, b); if (ret < 0) { return ret; } } - return PICO_OK; + return ssd_send(display); +} + +int ssd_putchar(ssd1306_t *display, const char c) { + uint8_t scr = ascii_to_screen[c]; + return ssd_putscr(display, scr, true); } int ssd_push_str(ssd1306_t *display, const char *str) { for (int i = 0; str[i]; i++) { - int ret = ssd_push_char(display, str[i]); + int ret = ssd_putchar(display, str[i]); if (ret < 0) { return ret; } |
