From e41764fceeabb1cdb6a7a299e00f2166a6f6ac32 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Thu, 18 Jun 2020 13:26:56 +0100 Subject: moved stm32 into directory added noddy pcb --- stm32/app/font21x32.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 stm32/app/font21x32.c (limited to 'stm32/app/font21x32.c') diff --git a/stm32/app/font21x32.c b/stm32/app/font21x32.c new file mode 100644 index 0000000..476af5e --- /dev/null +++ b/stm32/app/font21x32.c @@ -0,0 +1,135 @@ +#include "project.h" + +static const uint8_t font21x32[][84] = { + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xfc, 0xfe, 0xff, 0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x0f, + 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0xff, + 0xe0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xf8, 0xff, 0x7f, 0x3f, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x06, 0x06, 0x06, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x1e, 0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x83, 0xc7, 0xff, + 0xff, 0xfe, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xf4, 0xf6, 0xf3, 0xf3, 0xf1, 0xf1, 0xf1, 0xf0, 0xfc, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x7e, 0x7f, 0x7b, 0x11, 0x01, 0x01, 0x01, 0x01, 0x83, 0xff, 0xff, + 0xfe, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x0f, 0x3b, 0xfb, 0xf9, 0xf0, 0xe0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x6f, 0x6e, 0x40, 0xc0, + 0xc0, 0xc0, 0xc0, 0x60, 0x78, 0x7f, 0x3f, 0x3f, 0x1f, 0x07, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x38, 0x0c, 0xfe, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xdc, 0xc6, + 0xc3, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x60, 0x60, 0x60, 0x7f, 0x7f, 0x7f, 0x7f, 0x60, 0x60, 0x60, 0x40, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x0f, 0x0f, 0x07, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0x8f, + 0x06, 0x02, 0x03, 0x03, 0x01, 0x03, 0x03, 0x1e, 0xfe, 0xfc, 0xfc, 0xf0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x37, 0x67, 0x63, 0x40, 0xc0, + 0xc0, 0xc0, 0x40, 0x60, 0x78, 0x7f, 0x3f, 0x1f, 0x0f, 0x01, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0x1e, 0x06, 0x02, 0x03, 0x03, + 0x03, 0x03, 0x3b, 0x7e, 0x7e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0c, 0x06, 0x02, 0x02, 0x02, 0x02, 0x06, 0xfe, + 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x7f, + 0xff, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xff, 0x7f, 0x7f, 0x1f, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xcf, 0xef, 0x7f, + 0x3f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0xf0, 0xfc, 0xfe, 0xc2, 0x82, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x06, 0xfe, 0xfc, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc1, 0xe7, 0xef, 0x3f, 0x1f, 0x1f, 0x3f, 0x3e, 0x7e, 0xfc, 0xfe, 0xfb, + 0xfb, 0xf1, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xe0, + 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc1, 0x63, 0x7f, 0x3f, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xfc, 0xfe, 0xfe, 0xff, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0xff, + 0xfe, 0xfc, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x3f, + 0x7f, 0x60, 0x40, 0x40, 0x40, 0x40, 0x20, 0x18, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x7e, 0x5c, 0xc0, 0xc0, + 0xc0, 0x40, 0x60, 0x70, 0x38, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, + }, +}; + + + +/* this can be budget, since it can only fit one way vertically*/ + +void +font21x32_put_ch (uint8_t *vram, unsigned ch, unsigned x) +{ + if ((ch >= '0') && (ch <= '9')) + ch -= '0' - 1; + else + ch = 0; + + + oled_blit_strip (vram, x, x + 21, 0xff, 0, font21x32[ch]); + x += SSD1306_WIDTH; + oled_blit_strip (vram, x, x + 21, 0xff, 0, &font21x32[ch][21]); + x += SSD1306_WIDTH; + oled_blit_strip (vram, x, x + 21, 0xff, 0, &font21x32[ch][42]); + x += SSD1306_WIDTH; + oled_blit_strip (vram, x, x + 21, 0xff, 0, &font21x32[ch][63]); +} + + +void +font21x32_put_str (uint8_t *vram, char *str, unsigned x) +{ + while (*str) { + font21x32_put_ch (vram, * (str++), x); + x += 21; + } +} -- cgit v1.2.3