121 lines
5.6 KiB
C++
121 lines
5.6 KiB
C++
#ifndef FONT_5X7_H
|
|
#define FONT_5X7_H
|
|
|
|
#include <map>
|
|
#include <vector>
|
|
#include <cstdint>
|
|
|
|
using namespace std;
|
|
|
|
const std::map<uint8_t, std::vector<uint8_t>> font_5x7 = {
|
|
// Uppercase letters (A-Z)
|
|
{'A', {0x0E, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11}},
|
|
{'B', {0x1E, 0x11, 0x11, 0x1E, 0x11, 0x11, 0x1E}},
|
|
{'C', {0x0E, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0E}},
|
|
{'D', {0x1E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1E}},
|
|
{'E', {0x1F, 0x10, 0x10, 0x1E, 0x10, 0x10, 0x1F}},
|
|
{'F', {0x1F, 0x10, 0x10, 0x1E, 0x10, 0x10, 0x10}},
|
|
{'G', {0x0E, 0x11, 0x10, 0x13, 0x11, 0x11, 0x0F}},
|
|
{'H', {0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11}},
|
|
{'I', {0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07}},
|
|
{'J', {0x07, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0C}},
|
|
{'K', {0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11}},
|
|
{'L', {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F}},
|
|
{'M', {0x11, 0x1B, 0x15, 0x15, 0x11, 0x11, 0x11}},
|
|
{'N', {0x11, 0x19, 0x19, 0x15, 0x13, 0x13, 0x11}},
|
|
{'O', {0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E}},
|
|
{'P', {0x1E, 0x11, 0x11, 0x1E, 0x10, 0x10, 0x10}},
|
|
{'Q', {0x0E, 0x11, 0x11, 0x11, 0x15, 0x12, 0x0D}},
|
|
{'R', {0x1E, 0x11, 0x11, 0x1E, 0x14, 0x12, 0x11}},
|
|
{'S', {0x0F, 0x10, 0x10, 0x0E, 0x01, 0x01, 0x1E}},
|
|
{'T', {0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04}},
|
|
{'U', {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E}},
|
|
{'V', {0x11, 0x11, 0x11, 0x11, 0x11, 0x0A, 0x04}},
|
|
{'W', {0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0A}},
|
|
{'X', {0x11, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x11}},
|
|
{'Y', {0x11, 0x11, 0x0A, 0x04, 0x04, 0x04, 0x04}},
|
|
{'Z', {0x1F, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1F}},
|
|
|
|
// Lowercase letters (a-z)
|
|
{'a', {0x00, 0x00, 0x0E, 0x01, 0x0F, 0x11, 0x0F}},
|
|
{'b', {0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x1E}},
|
|
{'c', {0x00, 0x00, 0x0E, 0x11, 0x10, 0x11, 0x0E}},
|
|
{'d', {0x01, 0x01, 0x0D, 0x13, 0x11, 0x11, 0x0F}},
|
|
{'e', {0x00, 0x00, 0x0E, 0x11, 0x1F, 0x10, 0x0E}},
|
|
{'f', {0x06, 0x09, 0x08, 0x1C, 0x08, 0x08, 0x08}},
|
|
{'g', {0x00, 0x0F, 0x11, 0x11, 0x0F, 0x01, 0x0E}},
|
|
{'h', {0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x11}},
|
|
{'i', {0x00, 0x02, 0x00, 0x06, 0x02, 0x02, 0x07}},
|
|
{'j', {0x00, 0x02, 0x00, 0x06, 0x02, 0x12, 0x0C}},
|
|
{'k', {0x10, 0x10, 0x12, 0x14, 0x18, 0x14, 0x12}},
|
|
{'l', {0x06, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07}},
|
|
{'m', {0x00, 0x00, 0x1A, 0x15, 0x15, 0x15, 0x15}},
|
|
{'n', {0x00, 0x00, 0x16, 0x19, 0x11, 0x11, 0x11}},
|
|
{'o', {0x00, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E}},
|
|
{'p', {0x00, 0x00, 0x1E, 0x11, 0x1E, 0x10, 0x10}},
|
|
{'q', {0x00, 0x00, 0x0D, 0x13, 0x0F, 0x01, 0x01}},
|
|
{'r', {0x00, 0x00, 0x16, 0x19, 0x10, 0x10, 0x10}},
|
|
{'s', {0x00, 0x00, 0x0E, 0x10, 0x0E, 0x01, 0x1E}},
|
|
{'t', {0x08, 0x08, 0x1C, 0x08, 0x08, 0x09, 0x06}},
|
|
{'u', {0x00, 0x00, 0x11, 0x11, 0x11, 0x13, 0x0D}},
|
|
{'v', {0x00, 0x00, 0x11, 0x11, 0x11, 0x0A, 0x04}},
|
|
{'w', {0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0A}},
|
|
{'x', {0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11}},
|
|
{'y', {0x00, 0x00, 0x11, 0x11, 0x0F, 0x01, 0x0E}},
|
|
{'z', {0x00, 0x00, 0x1F, 0x02, 0x04, 0x08, 0x1F}},
|
|
|
|
// Numbers (0-9)
|
|
{'0', {0x0E, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0E}},
|
|
{'1', {0x02, 0x06, 0x02, 0x02, 0x02, 0x02, 0x07}},
|
|
{'2', {0x0E, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1F}},
|
|
{'3', {0x1F, 0x02, 0x04, 0x02, 0x01, 0x11, 0x0E}},
|
|
{'4', {0x02, 0x06, 0x0A, 0x12, 0x1F, 0x02, 0x02}},
|
|
{'5', {0x1F, 0x10, 0x1E, 0x01, 0x01, 0x11, 0x0E}},
|
|
{'6', {0x06, 0x08, 0x10, 0x1E, 0x11, 0x11, 0x0E}},
|
|
{'7', {0x1F, 0x01, 0x02, 0x04, 0x08, 0x08, 0x08}},
|
|
{'8', {0x0E, 0x11, 0x11, 0x0E, 0x11, 0x11, 0x0E}},
|
|
{'9', {0x0E, 0x11, 0x11, 0x0F, 0x01, 0x02, 0x0C}},
|
|
|
|
// Punctuation and symbols
|
|
{' ', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
|
|
{'!', {0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01}},
|
|
{'?', {0x0E, 0x11, 0x02, 0x04, 0x04, 0x00, 0x04}},
|
|
{'.', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}},
|
|
{',', {0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02}},
|
|
{':', {0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00}},
|
|
{';', {0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02}},
|
|
{'\'', {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}},
|
|
{'"', {0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}},
|
|
{'-', {0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00}},
|
|
{'_', {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F}},
|
|
{'+', {0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00}},
|
|
{'=', {0x00, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00}},
|
|
{'*', {0x00, 0x0A, 0x04, 0x1F, 0x04, 0x0A, 0x00}},
|
|
{'/', {0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x00}},
|
|
{'\\', {0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00}},
|
|
{'(', {0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01}},
|
|
{')', {0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04}},
|
|
{'[', {0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07}},
|
|
{']', {0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07}},
|
|
{'{', {0x03, 0x02, 0x02, 0x04, 0x02, 0x02, 0x03}},
|
|
{'}', {0x06, 0x02, 0x02, 0x01, 0x02, 0x02, 0x06}},
|
|
{'<', {0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00}},
|
|
{'>', {0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00}},
|
|
{'@', {0x0E, 0x11, 0x17, 0x15, 0x17, 0x10, 0x0E}},
|
|
{'#', {0x0A, 0x0A, 0x1F, 0x0A, 0x1F, 0x0A, 0x0A}},
|
|
{'$', {0x04, 0x0F, 0x14, 0x0E, 0x05, 0x1E, 0x04}},
|
|
{'%', {0x18, 0x19, 0x02, 0x04, 0x08, 0x13, 0x03}},
|
|
{'&', {0x0C, 0x12, 0x14, 0x08, 0x15, 0x12, 0x0D}},
|
|
|
|
// Special characters
|
|
// {'°', {0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00}},
|
|
{'|', {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}},
|
|
{'`', {0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}},
|
|
// {'¶', {0x0F, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D}},
|
|
// {'•', {0x00, 0x00, 0x02, 0x07, 0x02, 0x00, 0x00}}
|
|
};
|
|
|
|
// Declarations only
|
|
const vector<uint8_t> &getFontChar_5x7(char c);
|
|
|
|
#endif |