-
egorguslyan authoredegorguslyan authored
font.h 7.97 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_space[] PROGMEM = {cords(1, 6, 1), 0b00000000};
const uint8_t font_notdef[] PROGMEM = {cords(5, 0, 5), 0b11111110, 0b11110111, 0b01011101, 0b11101111, 0b11100000};
const uint8_t font_dot[] PROGMEM = {cords(2, 4, 1), 0b11011000};
const uint8_t font_comma[] PROGMEM = {cords(2, 4, 1), 0b11011001};
const uint8_t font_exclamation[] PROGMEM = {cords(1, 0, 1), 0b11110100};
const uint8_t font_question[] PROGMEM = {cords(3, 0, 3), 0b01010100, 0b10100100, 0b00010000};
// 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(5, 2, 3), 0b01100001, 0b01111001, 0b01100000};
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};
const uint8_t* const font[] PROGMEM = { font_space, font_notdef, font_dot, font_comma, font_exclamation, font_question,
font_num0, font_num1, font_num2, font_num3, font_num4, font_num5, font_num6, font_num7, font_num8, font_num9,
font_A, font_a, font_B, font_b, font_C, font_c, font_D, font_d, font_E, font_e, font_F, font_f, font_G, font_g,
font_H, font_h, font_I, font_i, font_J, font_j, font_K, font_k, font_L, font_l, font_M, font_m, font_N, font_n,
font_O, font_o, font_P, font_p, font_Q, font_q, font_R, font_r, font_S, font_s, font_T, font_t, font_U, font_u,
font_V, font_v, font_W, font_w, font_X, font_x, font_Y, font_y, font_Z, font_z};