Files
templates/c/st7789/st7789_font.c

117 lines
6.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Растровый шрифт для текстового вывода ST7789. Метаданные глифов и порядок битов должны
* соответствовать обходу в драйвере; таблица описывает пиксели символов, а не строки в
* кодировке терминала.
*/
/**
* @file st7789_font.c
* @brief Таблица знакогенератора 5x7 для кодов 0x20..0x7F.
*
* Глиф хранится пятью байтами столбцов слева направо; бит 0 каждого байта —
* верхняя строка. Шестой столбец знакоместа драйвер оставляет пустым, поэтому
* шаг символа равен ST7789_FONT_WIDTH. Код 0x7F занят знаком градуса, все
* остальные позиции совпадают с ASCII.
*/
#include "st7789_font.h"
const uint8_t ST7789_Font5x7[ST7789_FONT_GLYPHS][ST7789_FONT_GLYPH_BYTES] = {
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x20 пробел */
{ 0x00, 0x00, 0x5F, 0x00, 0x00 }, /* 0x21 '!' */
{ 0x00, 0x07, 0x00, 0x07, 0x00 }, /* 0x22 '"' */
{ 0x14, 0x7F, 0x14, 0x7F, 0x14 }, /* 0x23 '#' */
{ 0x24, 0x2A, 0x7F, 0x2A, 0x12 }, /* 0x24 '$' */
{ 0x23, 0x13, 0x08, 0x64, 0x62 }, /* 0x25 '%' */
{ 0x36, 0x49, 0x55, 0x22, 0x50 }, /* 0x26 '&' */
{ 0x00, 0x05, 0x03, 0x00, 0x00 }, /* 0x27 ''' */
{ 0x00, 0x1C, 0x22, 0x41, 0x00 }, /* 0x28 '(' */
{ 0x00, 0x41, 0x22, 0x1C, 0x00 }, /* 0x29 ')' */
{ 0x14, 0x08, 0x3E, 0x08, 0x14 }, /* 0x2A '*' */
{ 0x08, 0x08, 0x3E, 0x08, 0x08 }, /* 0x2B '+' */
{ 0x00, 0x50, 0x30, 0x00, 0x00 }, /* 0x2C ',' */
{ 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 0x2D '-' */
{ 0x00, 0x60, 0x60, 0x00, 0x00 }, /* 0x2E '.' */
{ 0x20, 0x10, 0x08, 0x04, 0x02 }, /* 0x2F '/' */
{ 0x3E, 0x51, 0x49, 0x45, 0x3E }, /* 0x30 '0' */
{ 0x00, 0x42, 0x7F, 0x40, 0x00 }, /* 0x31 '1' */
{ 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 0x32 '2' */
{ 0x21, 0x41, 0x45, 0x4B, 0x31 }, /* 0x33 '3' */
{ 0x18, 0x14, 0x12, 0x7F, 0x10 }, /* 0x34 '4' */
{ 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 0x35 '5' */
{ 0x3C, 0x4A, 0x49, 0x49, 0x30 }, /* 0x36 '6' */
{ 0x01, 0x71, 0x09, 0x05, 0x03 }, /* 0x37 '7' */
{ 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 0x38 '8' */
{ 0x06, 0x49, 0x49, 0x29, 0x1E }, /* 0x39 '9' */
{ 0x00, 0x36, 0x36, 0x00, 0x00 }, /* 0x3A ':' */
{ 0x00, 0x56, 0x36, 0x00, 0x00 }, /* 0x3B ';' */
{ 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 0x3C '<' */
{ 0x14, 0x14, 0x14, 0x14, 0x14 }, /* 0x3D '=' */
{ 0x00, 0x41, 0x22, 0x14, 0x08 }, /* 0x3E '>' */
{ 0x02, 0x01, 0x51, 0x09, 0x06 }, /* 0x3F '?' */
{ 0x32, 0x49, 0x79, 0x41, 0x3E }, /* 0x40 '@' */
{ 0x7E, 0x11, 0x11, 0x11, 0x7E }, /* 0x41 'A' */
{ 0x7F, 0x49, 0x49, 0x49, 0x36 }, /* 0x42 'B' */
{ 0x3E, 0x41, 0x41, 0x41, 0x22 }, /* 0x43 'C' */
{ 0x7F, 0x41, 0x41, 0x22, 0x1C }, /* 0x44 'D' */
{ 0x7F, 0x49, 0x49, 0x49, 0x41 }, /* 0x45 'E' */
{ 0x7F, 0x09, 0x09, 0x09, 0x01 }, /* 0x46 'F' */
{ 0x3E, 0x41, 0x49, 0x49, 0x7A }, /* 0x47 'G' */
{ 0x7F, 0x08, 0x08, 0x08, 0x7F }, /* 0x48 'H' */
{ 0x00, 0x41, 0x7F, 0x41, 0x00 }, /* 0x49 'I' */
{ 0x20, 0x40, 0x41, 0x3F, 0x01 }, /* 0x4A 'J' */
{ 0x7F, 0x08, 0x14, 0x22, 0x41 }, /* 0x4B 'K' */
{ 0x7F, 0x40, 0x40, 0x40, 0x40 }, /* 0x4C 'L' */
{ 0x7F, 0x02, 0x0C, 0x02, 0x7F }, /* 0x4D 'M' */
{ 0x7F, 0x04, 0x08, 0x10, 0x7F }, /* 0x4E 'N' */
{ 0x3E, 0x41, 0x41, 0x41, 0x3E }, /* 0x4F 'O' */
{ 0x7F, 0x09, 0x09, 0x09, 0x06 }, /* 0x50 'P' */
{ 0x3E, 0x41, 0x51, 0x21, 0x5E }, /* 0x51 'Q' */
{ 0x7F, 0x09, 0x19, 0x29, 0x46 }, /* 0x52 'R' */
{ 0x46, 0x49, 0x49, 0x49, 0x31 }, /* 0x53 'S' */
{ 0x01, 0x01, 0x7F, 0x01, 0x01 }, /* 0x54 'T' */
{ 0x3F, 0x40, 0x40, 0x40, 0x3F }, /* 0x55 'U' */
{ 0x1F, 0x20, 0x40, 0x20, 0x1F }, /* 0x56 'V' */
{ 0x3F, 0x40, 0x38, 0x40, 0x3F }, /* 0x57 'W' */
{ 0x63, 0x14, 0x08, 0x14, 0x63 }, /* 0x58 'X' */
{ 0x07, 0x08, 0x70, 0x08, 0x07 }, /* 0x59 'Y' */
{ 0x61, 0x51, 0x49, 0x45, 0x43 }, /* 0x5A 'Z' */
{ 0x00, 0x7F, 0x41, 0x41, 0x00 }, /* 0x5B '[' */
{ 0x02, 0x04, 0x08, 0x10, 0x20 }, /* 0x5C '\' */
{ 0x00, 0x41, 0x41, 0x7F, 0x00 }, /* 0x5D ']' */
{ 0x04, 0x02, 0x01, 0x02, 0x04 }, /* 0x5E '^' */
{ 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 0x5F '_' */
{ 0x00, 0x01, 0x02, 0x04, 0x00 }, /* 0x60 '`' */
{ 0x20, 0x54, 0x54, 0x54, 0x78 }, /* 0x61 'a' */
{ 0x7F, 0x48, 0x44, 0x44, 0x38 }, /* 0x62 'b' */
{ 0x38, 0x44, 0x44, 0x44, 0x20 }, /* 0x63 'c' */
{ 0x38, 0x44, 0x44, 0x48, 0x7F }, /* 0x64 'd' */
{ 0x38, 0x54, 0x54, 0x54, 0x18 }, /* 0x65 'e' */
{ 0x08, 0x7E, 0x09, 0x01, 0x02 }, /* 0x66 'f' */
{ 0x0C, 0x52, 0x52, 0x52, 0x3E }, /* 0x67 'g' */
{ 0x7F, 0x08, 0x04, 0x04, 0x78 }, /* 0x68 'h' */
{ 0x00, 0x44, 0x7D, 0x40, 0x00 }, /* 0x69 'i' */
{ 0x20, 0x40, 0x44, 0x3D, 0x00 }, /* 0x6A 'j' */
{ 0x7F, 0x10, 0x28, 0x44, 0x00 }, /* 0x6B 'k' */
{ 0x00, 0x41, 0x7F, 0x40, 0x00 }, /* 0x6C 'l' */
{ 0x7C, 0x04, 0x18, 0x04, 0x78 }, /* 0x6D 'm' */
{ 0x7C, 0x08, 0x04, 0x04, 0x78 }, /* 0x6E 'n' */
{ 0x38, 0x44, 0x44, 0x44, 0x38 }, /* 0x6F 'o' */
{ 0x7C, 0x14, 0x14, 0x14, 0x08 }, /* 0x70 'p' */
{ 0x08, 0x14, 0x14, 0x18, 0x7C }, /* 0x71 'q' */
{ 0x7C, 0x08, 0x04, 0x04, 0x08 }, /* 0x72 'r' */
{ 0x48, 0x54, 0x54, 0x54, 0x20 }, /* 0x73 's' */
{ 0x04, 0x3F, 0x44, 0x40, 0x20 }, /* 0x74 't' */
{ 0x3C, 0x40, 0x40, 0x20, 0x1C }, /* 0x75 'u' */
{ 0x1C, 0x20, 0x40, 0x20, 0x1C }, /* 0x76 'v' */
{ 0x3C, 0x40, 0x30, 0x40, 0x3C }, /* 0x77 'w' */
{ 0x44, 0x28, 0x10, 0x28, 0x44 }, /* 0x78 'x' */
{ 0x0C, 0x50, 0x50, 0x50, 0x3C }, /* 0x79 'y' */
{ 0x44, 0x64, 0x54, 0x4C, 0x44 }, /* 0x7A 'z' */
{ 0x00, 0x08, 0x36, 0x41, 0x00 }, /* 0x7B '{' */
{ 0x00, 0x00, 0x7F, 0x00, 0x00 }, /* 0x7C '|' */
{ 0x00, 0x41, 0x36, 0x08, 0x00 }, /* 0x7D '}' */
{ 0x08, 0x04, 0x08, 0x10, 0x08 }, /* 0x7E '~' */
{ 0x00, 0x06, 0x09, 0x09, 0x06 }, /* 0x7F знак градуса */
};