From bf0f22dc7510eb6d098ae2205dae008f858d8195 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 18 May 2026 16:15:32 +0530 Subject: track: add display abstraction layer and bitmap font --- main/font.c | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 main/font.c (limited to 'main/font.c') diff --git a/main/font.c b/main/font.c new file mode 100644 index 0000000..b23928f --- /dev/null +++ b/main/font.c @@ -0,0 +1,132 @@ +#include "font.h" + +const uint8_t font8x8_basic[128][8] = { + {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,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}, + {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}, + {0x18,0x18,0x18,0x18,0x18,0x00,0x18,0x00}, + {0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00}, + {0x66,0xFF,0x66,0x66,0xFF,0x66,0x00,0x00}, + {0x18,0x3E,0x58,0x3C,0x1A,0x7C,0x18,0x00}, + {0x62,0x66,0x0C,0x18,0x30,0x66,0x46,0x00}, + {0x3C,0x66,0x3C,0x38,0x67,0x66,0x3F,0x00}, + {0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00}, + {0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00}, + {0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00}, + {0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00}, + {0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30}, + {0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00}, + {0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00}, + {0x3C,0x66,0x6E,0x7E,0x76,0x66,0x3C,0x00}, + {0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00}, + {0x3C,0x66,0x06,0x1C,0x30,0x60,0x7E,0x00}, + {0x3C,0x66,0x06,0x1C,0x06,0x66,0x3C,0x00}, + {0x1C,0x3C,0x6C,0x6C,0x7E,0x0C,0x0C,0x00}, + {0x7E,0x60,0x7C,0x06,0x06,0x66,0x3C,0x00}, + {0x1C,0x30,0x60,0x7C,0x66,0x66,0x3C,0x00}, + {0x7E,0x06,0x0C,0x18,0x30,0x30,0x30,0x00}, + {0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00}, + {0x3C,0x66,0x66,0x3E,0x06,0x0C,0x38,0x00}, + {0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00}, + {0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x30}, + {0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00}, + {0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00}, + {0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00}, + {0x3C,0x66,0x0C,0x18,0x18,0x00,0x18,0x00}, + {0x3C,0x66,0x6E,0x6A,0x6E,0x60,0x3C,0x00}, + {0x3C,0x66,0x66,0x7E,0x66,0x66,0x66,0x00}, + {0x7C,0x66,0x66,0x7C,0x66,0x66,0x7C,0x00}, + {0x3C,0x66,0x60,0x60,0x60,0x66,0x3C,0x00}, + {0x78,0x6C,0x66,0x66,0x66,0x6C,0x78,0x00}, + {0x7E,0x60,0x60,0x7C,0x60,0x60,0x7E,0x00}, + {0x7E,0x60,0x60,0x7C,0x60,0x60,0x60,0x00}, + {0x3C,0x66,0x60,0x6E,0x66,0x66,0x3C,0x00}, + {0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00}, + {0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, + {0x1E,0x0C,0x0C,0x0C,0x0C,0x6C,0x38,0x00}, + {0x66,0x6C,0x78,0x70,0x78,0x6C,0x66,0x00}, + {0x60,0x60,0x60,0x60,0x60,0x60,0x7E,0x00}, + {0x63,0x77,0x7F,0x6B,0x63,0x63,0x63,0x00}, + {0x66,0x76,0x7E,0x7E,0x6E,0x66,0x66,0x00}, + {0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00}, + {0x7C,0x66,0x66,0x7C,0x60,0x60,0x60,0x00}, + {0x3C,0x66,0x66,0x66,0x6A,0x6C,0x36,0x00}, + {0x7C,0x66,0x66,0x7C,0x6C,0x66,0x66,0x00}, + {0x3C,0x66,0x60,0x3C,0x06,0x66,0x3C,0x00}, + {0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00}, + {0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00}, + {0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00}, + {0x63,0x63,0x63,0x6B,0x7F,0x77,0x63,0x00}, + {0x66,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00}, + {0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00}, + {0x7E,0x06,0x0C,0x18,0x30,0x60,0x7E,0x00}, + {0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00}, + {0xC0,0x60,0x30,0x18,0x0C,0x06,0x03,0x00}, + {0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00}, + {0x18,0x3C,0x66,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00}, + {0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00}, + {0x00,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00}, + {0x60,0x60,0x7C,0x66,0x66,0x66,0x7C,0x00}, + {0x00,0x00,0x3C,0x66,0x60,0x66,0x3C,0x00}, + {0x06,0x06,0x3E,0x66,0x66,0x66,0x3E,0x00}, + {0x00,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00}, + {0x1C,0x36,0x30,0x7C,0x30,0x30,0x30,0x00}, + {0x00,0x00,0x3E,0x66,0x66,0x3E,0x06,0x3C}, + {0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x00}, + {0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00}, + {0x0C,0x00,0x1C,0x0C,0x0C,0x0C,0x6C,0x38}, + {0x60,0x60,0x66,0x6C,0x78,0x6C,0x66,0x00}, + {0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, + {0x00,0x00,0xEC,0xFE,0xD6,0xD6,0xD6,0x00}, + {0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x00}, + {0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00}, + {0x00,0x00,0x7C,0x66,0x66,0x7C,0x60,0x60}, + {0x00,0x00,0x3E,0x66,0x66,0x3E,0x06,0x06}, + {0x00,0x00,0x7C,0x66,0x60,0x60,0x60,0x00}, + {0x00,0x00,0x3E,0x60,0x3C,0x06,0x7C,0x00}, + {0x30,0x30,0x7C,0x30,0x30,0x36,0x1C,0x00}, + {0x00,0x00,0x66,0x66,0x66,0x66,0x3E,0x00}, + {0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00}, + {0x00,0x00,0xD6,0xD6,0xD6,0xFE,0x6C,0x00}, + {0x00,0x00,0x66,0x3C,0x18,0x3C,0x66,0x00}, + {0x00,0x00,0x66,0x66,0x66,0x3E,0x06,0x3C}, + {0x00,0x00,0x7E,0x0C,0x18,0x30,0x7E,0x00}, + {0x0C,0x18,0x18,0x70,0x18,0x18,0x0C,0x00}, + {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00}, + {0x30,0x18,0x18,0x0E,0x18,0x18,0x30,0x00}, + {0x00,0x00,0x31,0x6B,0x46,0x00,0x00,0x00}, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +}; -- cgit v1.2.3