-
egorguslyan authoredegorguslyan authored
font.h 17.14 KiB
#pragma once
#define cords(width, offset, bytes) offset + bytes * 7 + (width - 1) * 49
// Example char
// const uint8_t char[] PROGMEM = {cords(x, y, b), 0b11111110, 0b11110111, 0b01011101, 0b11101111, 0b11100000};
const uint8_t font_notdef[] PROGMEM = {cords(5, 0, 5), 0b11111110, 0b11110111, 0b01011101, 0b11101111, 0b11100000};
const uint8_t font_space[] PROGMEM = {cords(1, 6, 1), 0b00000000};
const uint8_t font_exclamation[] PROGMEM = {cords(1, 0, 1), 0b11110100};
const uint8_t font_quote[] PROGMEM = {cords(3, 0, 1), 0b10110100};
const uint8_t font_hashtag[] PROGMEM = {cords(5, 2, 3), 0b01010111, 0b11010101, 0b11110101};
const uint8_t font_promt[] PROGMEM = {cords(5, 0, 5), 0b00100011, 0b10101000, 0b11100010, 0b10111000, 0b10000000};
const uint8_t font_percent[] PROGMEM = {cords(5, 0, 5), 0b11101101, 0b01110100, 0b01000101, 0b11010110, 0b11100000};
const uint8_t font_octopus[] PROGMEM = {cords(5, 0, 5), 0b01100100, 0b10100000, 0b11001001, 0b11001001, 0b10100000};
const uint8_t font_singlequote[] PROGMEM = {cords(1, 0, 1), 0b11000000};
const uint8_t font_bracketO[] PROGMEM = {cords(2, 0, 2), 0b01101010, 0b10100100};
const uint8_t font_bracketC[] PROGMEM = {cords(2, 0, 2), 0b10010101, 0b01011000};
const uint8_t font_multiply[] PROGMEM = {cords(3, 2, 2), 0b10101010, 0b10000000};
const uint8_t font_plus[] PROGMEM = {cords(3, 2, 1), 0b01011101};
const uint8_t font_comma[] PROGMEM = {cords(2, 4, 1), 0b11011001};
const uint8_t font_minus[] PROGMEM = {cords(3, 3, 1), 0b11100000};
const uint8_t font_dot[] PROGMEM = {cords(2, 4, 1), 0b11011000};
const uint8_t font_slash[] PROGMEM = {cords(3, 0, 3), 0b00100101, 0b00100101, 0b00100000};
const uint8_t font_colon[] PROGMEM = {cords(1, 2, 1), 0b10100000};
const uint8_t font_semicolon[] PROGMEM = {cords(2, 2, 1), 0b01000110};
const uint8_t font_less[] PROGMEM = {cords(3, 1, 2), 0b00101010, 0b00100010};
const uint8_t font_equal[] PROGMEM = {cords(3, 2, 2), 0b11100011, 0b10000000};
const uint8_t font_greater[] PROGMEM = {cords(3, 1, 2), 0b10001000, 0b10101000};
const uint8_t font_question[] PROGMEM = {cords(3, 0, 3), 0b01010100, 0b10100100, 0b00010000};
const uint8_t font_mail[] PROGMEM = {cords(5, 0, 5), 0b01110100, 0b01011000, 0b10100111, 0b01000101, 0b10000000};
const uint8_t font_sbracketO[] PROGMEM = {cords(2, 0, 2), 0b11101010, 0b10101100};
const uint8_t font_bslash[] PROGMEM = {cords(3, 0, 3), 0b10010001, 0b00100100, 0b01000000};
const uint8_t font_sbracketC[] PROGMEM = {cords(2, 0, 2), 0b11010101, 0b01011100};
const uint8_t font_caret[] PROGMEM = {cords(3, 0, 1), 0b01010100};
const uint8_t font_underscore[] PROGMEM = {cords(3, 6, 1), 0b11100000};
const uint8_t font_grave[] PROGMEM = {cords(2, 0, 1), 0b10010000};
const uint8_t font_fbracketO[] PROGMEM = {cords(3, 0, 2), 0b00101001, 0b01000100, 0b1000100};
const uint8_t font_pipe[] PROGMEM = {cords(1, 0, 1), 0b11111110};
const uint8_t font_fbracketC[] PROGMEM = {cords(2, 0, 2), 0b10001001, 0b00010100, 0b1010000};
const uint8_t font_tilda[] PROGMEM = {cords(5, 2, 2), 0b01000101, 0b01000100};
// Numbers
const uint8_t font_num0[] PROGMEM = {cords(5, 0, 5), 0b01110100, 0b11101011, 0b01011010, 0b11100101, 0b11000000};
const uint8_t font_num1[] PROGMEM = {cords(3, 0, 3), 0b01011001, 0b00100100, 0b10111000};
const uint8_t font_num2[] PROGMEM = {cords(4, 0, 4), 0b01101001, 0b00010010, 0b01001000, 0b11110000};
const uint8_t font_num3[] PROGMEM = {cords(4, 0, 4), 0b01101001, 0b00010110, 0b00011001, 0b01100000};
const uint8_t font_num4[] PROGMEM = {cords(5, 0, 5), 0b00110010, 0b10010101, 0b00101111, 0b10001000, 0b01000000};
const uint8_t font_num5[] PROGMEM = {cords(4, 0, 4), 0b11111000, 0b10001110, 0b00011001, 0b01100000};
const uint8_t font_num6[] PROGMEM = {cords(4, 0, 4), 0b00110100, 0b10001110, 0b10011001, 0b01100000};
const uint8_t font_num7[] PROGMEM = {cords(3, 0, 3), 0b11100100, 0b10010100, 0b10010000};
const uint8_t font_num8[] PROGMEM = {cords(4, 0, 4), 0b01101001, 0b10010110, 0b10011001, 0b01100000};
const uint8_t font_num9[] PROGMEM = {cords(4, 0, 4), 0b01101001, 0b10010111, 0b00010001, 0b01100000};
// English
const uint8_t font_A[] PROGMEM = {cords(5, 0, 5), 0b01101101, 0b11000110, 0b00111111, 0b10001100, 0b01000000};
const uint8_t font_B[] PROGMEM = {cords(5, 0, 5), 0b11100100, 0b10100101, 0b11101000, 0b11000111, 0b11000000};
const uint8_t font_C[] PROGMEM = {cords(5, 0, 5), 0b01110100, 0b01100001, 0b00001000, 0b01000101, 0b11000000};
const uint8_t font_D[] PROGMEM = {cords(5, 0, 5), 0b11100100, 0b10100011, 0b00011000, 0b11001011, 0b10000000};
const uint8_t font_E[] PROGMEM = {cords(4, 0, 4), 0b11111000, 0b10001111, 0b10001000, 0b11110000};
const uint8_t font_F[] PROGMEM = {cords(4, 0, 4), 0b11111000, 0b10001111, 0b10001000, 0b10000000};
const uint8_t font_G[] PROGMEM = {cords(5, 0, 5), 0b01110100, 0b01100001, 0b00001001, 0b11000101, 0b11000000};
const uint8_t font_H[] PROGMEM = {cords(4, 0, 4), 0b10011001, 0b10011111, 0b10011001, 0b10010000};
const uint8_t font_I[] PROGMEM = {cords(1, 0, 1), 0b11111110};
const uint8_t font_J[] PROGMEM = {cords(3, 0, 3), 0b00100100, 0b10010011, 0b01010000};
const uint8_t font_K[] PROGMEM = {cords(4, 0, 4), 0b10011010, 0b10101100, 0b10101010, 0b10010000};
const uint8_t font_L[] PROGMEM = {cords(4, 0, 4), 0b10001000, 0b10001000, 0b10001000, 0b11110000};
const uint8_t font_M[] PROGMEM = {cords(5, 0, 5), 0b10001110, 0b11101011, 0b01011000, 0b11000110, 0b00100000};
const uint8_t font_N[] PROGMEM = {cords(5, 0, 5), 0b10001110, 0b01101011, 0b01011010, 0b11001110, 0b00100000};
const uint8_t font_O[] PROGMEM = {cords(4, 0, 4), 0b01101001, 0b10011001, 0b10011001, 0b01100000};
const uint8_t font_P[] PROGMEM = {cords(4, 0, 4), 0b11101001, 0b10011110, 0b10001000, 0b10000000};
const uint8_t font_Q[] PROGMEM = {cords(5, 0, 5), 0b01100100, 0b10100101, 0b00101001, 0b01011001, 0b10100000};
const uint8_t font_R[] PROGMEM = {cords(4, 0, 4), 0b11101001, 0b10011110, 0b11001010, 0b10010000};
const uint8_t font_S[] PROGMEM = {cords(4, 0, 4), 0b01101000, 0b10000110, 0b00010001, 0b01100000};
const uint8_t font_T[] PROGMEM = {cords(5, 0, 5), 0b11111001, 0b00001000, 0b01000010, 0b00010000, 0b10000000};
const uint8_t font_U[] PROGMEM = {cords(4, 0, 4), 0b10011001, 0b10011001, 0b10011001, 0b01100000};
const uint8_t font_V[] PROGMEM = {cords(3, 0, 3), 0b10110110, 0b11011011, 0b01010000};
const uint8_t font_W[] PROGMEM = {cords(5, 0, 5), 0b10001100, 0b01101011, 0b01011010, 0b11010101, 0b01000000};
const uint8_t font_X[] PROGMEM = {cords(5, 0, 5), 0b10001010, 0b10010100, 0b01000101, 0b00101010, 0b00100000};
const uint8_t font_Y[] PROGMEM = {cords(5, 0, 5), 0b10001010, 0b10010100, 0b01000010, 0b00010000, 0b10000000};
const uint8_t font_Z[] PROGMEM = {cords(5, 0, 5), 0b11111000, 0b01000100, 0b01000100, 0b01000011, 0b11100000};
const uint8_t font_a[] PROGMEM = {cords(4, 2, 3), 0b01100001, 0b01111001, 0b01110000};
const uint8_t font_b[] PROGMEM = {cords(4, 0, 4), 0b10001000, 0b10001110, 0b10011001, 0b11100000};
const uint8_t font_c[] PROGMEM = {cords(3, 2, 2), 0b01110010, 0b01000110};
const uint8_t font_d[] PROGMEM = {cords(4, 0, 4), 0b00010001, 0b00010111, 0b10011001, 0b01110000};
const uint8_t font_e[] PROGMEM = {cords(4, 2, 3), 0b01101001, 0b11101000, 0b01100000};
const uint8_t font_f[] PROGMEM = {cords(4, 0, 4), 0b00100101, 0b01000100, 0b11100100, 0b01000000};
const uint8_t font_g[] PROGMEM = {cords(4, 2, 3), 0b01111001, 0b01110001, 0b01100000};
const uint8_t font_h[] PROGMEM = {cords(3, 0, 3), 0b10010010, 0b01101011, 0b01101000};
const uint8_t font_i[] PROGMEM = {cords(1, 2, 1), 0b10111000};
const uint8_t font_j[] PROGMEM = {cords(3, 2, 2), 0b00100000, 0b11010100};
const uint8_t font_k[] PROGMEM = {cords(3, 0, 3), 0b10010010, 0b01011101, 0b01101000};
const uint8_t font_l[] PROGMEM = {cords(2, 0, 2), 0b10101010, 0b10100100};
const uint8_t font_m[] PROGMEM = {cords(5, 2, 4), 0b11110101, 0b01101011, 0b01011010, 0b10000000};
const uint8_t font_n[] PROGMEM = {cords(4, 2, 3), 0b11101001, 0b10011001, 0b10010000};
const uint8_t font_o[] PROGMEM = {cords(4, 2, 3), 0b01101001, 0b10011001, 0b01100000};
const uint8_t font_p[] PROGMEM = {cords(4, 2, 3), 0b11101001, 0b11101000, 0b10000000};
const uint8_t font_q[] PROGMEM = {cords(4, 2, 3), 0b01111001, 0b01110001, 0b00010000};
const uint8_t font_r[] PROGMEM = {cords(4, 2, 3), 0b10101101, 0b10001000, 0b10000000};
const uint8_t font_s[] PROGMEM = {cords(4, 2, 3), 0b01101000, 0b01100001, 0b01100000};
const uint8_t font_t[] PROGMEM = {cords(4, 0, 4), 0b01000100, 0b11100100, 0b01000101, 0b00100000};
const uint8_t font_u[] PROGMEM = {cords(4, 2, 3), 0b10011001, 0b10011001, 0b01110000};
const uint8_t font_v[] PROGMEM = {cords(3, 2, 2), 0b10110110, 0b11010100};
const uint8_t font_w[] PROGMEM = {cords(5, 2, 3), 0b10001100, 0b01101011, 0b01010101};
const uint8_t font_x[] PROGMEM = {cords(3, 2, 2), 0b10110101, 0b01011010};
const uint8_t font_y[] PROGMEM = {cords(3, 2, 2), 0b10110101, 0b10011100};
const uint8_t font_z[] PROGMEM = {cords(3, 2, 2), 0b11100101, 0b01001110};
// Font dictionary Location Char Addres
const uint8_t* const font[] /*PROGMEM*/ = { font_notdef, // NONE NONE
font_space, // 32
font_exclamation, //! 33
font_quote, // " 34
font_hashtag, // # 35
font_promt, // $ 36
font_percent, // % 37
font_octopus, // & 38
font_singlequote, //' 39
font_bracketO, // ( 40
font_bracketC, // ) 41
font_multiply, // * 42
font_plus, // + 43
font_comma, // , 44
font_minus, // - 45
font_dot, // . 46
font_slash, // / 47
font_num0, // 0 48
font_num1, // 1 49
font_num2, // 2 50
font_num3, // 3 51
font_num4, // 4 52
font_num5, // 5 53
font_num6, // 6 54
font_num7, // 7 55
font_num8, // 8 56
font_num9, // 9 57
font_colon, // : 58
font_semicolon, // ; 59
font_less, // < 60
font_equal, // = 61
font_greater, // > 62
font_question, // ? 63
font_mail, // @ 64
font_A, // A 65
font_B, // B 66
font_C, // C 67
font_D, // D 68
font_E, // E 69
font_F, // F 70
font_G, // G 71
font_H, // H 72
font_I, // I 73
font_J, // J 74
font_K, // K 75
font_L, // L 76
font_M, // M 77
font_N, // N 78
font_O, // O 79
font_P, // P 80
font_Q, // Q 81
font_R, // R 82
font_S, // S 83
font_T, // T 84
font_U, // U 85
font_V, // V 86
font_W, // W 87
font_X, // X 88
font_Y, // Y 89
font_Z, // Z 90
font_sbracketO, // [ 91
font_bslash, // \ 92
font_sbracketC, // ] 93
font_caret, // ^ 94
font_underscore, // _ 95
font_grave, // ` 96
font_a, // a 97
font_b, // b 98
font_c, // c 99
font_d, // d 100
font_e, // e 101
font_f, // f 102
font_g, // g 103
font_h, // h 104
font_i, // i 105
font_j, // j 106
font_k, // k 107
font_l, // l 108
font_m, // m 100
font_n, // n 110
font_o, // o 111
font_p, // p 112
font_q, // q 113
font_r, // r 114
font_s, // s 115
font_t, // t 116
font_u, // u 117
font_v, // v 118
font_w, // w 119
font_x, // x 120
font_y, // y 121
font_z, // z 122
font_fbracketO, // { 123
font_pipe, // | 124
font_fbracketC, // } 125
font_tilda // ~ 126
};