#include "prototypes.h" const uint8_t font_numbers3x5_data[] PROGMEM = { B01110, B10001, B01110, // 0 B01000, B11111, B00000, // 1 B01001, B10011, B01101, // 2 B10001, B10101, B01010, // 3 B11100, B00100, B11111, // 4 B11101, B10101, B10111, // 5 B01110, B10101, B10110, // 6 B10000, B10011, B11100, // 7 B11111, B10101, B11111, // 8 B01101, B10101, B01110, // 9 }; bool font_numbers3x5_check(const char c) { return c>='0' && c<='9'; } uint16_t font_numbers3x5_get(const char c) { return c - '0'; } Font font_numbers3x5 = {3, 5, &font_numbers3x5_data[0], font_numbers3x5_check, font_numbers3x5_get}; const uint8_t font_numbers3x3_data[] PROGMEM = { B111, B101, B111, // 0 B101, B111, B001, // 1 B100, B111, B001, // 2 B101, B111, B111, // 3 B110, B010, B111, // 4 B001, B111, B100, // 5 B111, B011, B011, // 6 B100, B100, B111, // 7 B011, B111, B111, // 8 B110, B110, B111, // 9 }; bool font_numbers3x3_check(const char c) { return c>='0' && c<='9'; } uint16_t font_numbers3x3_get(const char c) { return c - '0'; } Font font_numbers3x3 = {3, 3, &font_numbers3x3_data[0], font_numbers3x3_check, font_numbers3x3_get}; const uint8_t font_numbers3x5_blocky_data[] PROGMEM = { B11111, B10001, B11111, // 0 B00000, B11111, B00000, // 1 B10111, B10101, B11101, // 2 B10001, B10101, B11111, // 3 B11100, B00100, B11111, // 4 B11101, B10101, B10111, // 5 B11111, B10101, B10111, // 6 B10000, B10000, B11111, // 7 B11111, B10101, B11111, // 8 B11101, B10101, B11111, // 9 }; Font font_numbers3x5_blocky = {3, 5, &font_numbers3x5_blocky_data[0], font_numbers3x5_check, font_numbers3x5_get}; const uint8_t font_numbers4x7_data[] PROGMEM = { 0x3E, 0x51, 0x45, 0x3E,// 0 0x00, 0x42, 0x7F, 0x40,// 1 0x42, 0x61, 0x49, 0x46,// 2 0x21, 0x45, 0x4B, 0x31,// 3 0x18, 0x14, 0x7F, 0x10,// 4 0x27, 0x45, 0x45, 0x39,// 5 0x3C, 0x4A, 0x49, 0x30,// 6 0x01, 0x71, 0x09, 0x05,// 7 0x36, 0x49, 0x49, 0x36,// 8 0x06, 0x49, 0x29, 0x1E // 9 }; bool font_numbers4x7_check(const char c) { return c>='0' && c<='9'; } uint16_t font_numbers4x7_get(const char c) { return c - '0'; } Font font_numbers4x7 = {4, 7, &font_numbers4x7_data[0], font_numbers4x7_check, font_numbers4x7_get}; const uint8_t font5x7_data[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, // (space) 0x00, 0x00, 0x7D, 0x00, 0x00, // ! 0x00, 0x70, 0x00, 0x70, 0x00, // " 0x14, 0x7F, 0x14, 0x7F, 0x14, // # 0x12, 0x2A, 0x7F, 0x2A, 0x24, // $ 0x62, 0x64, 0x08, 0x13, 0x23, // % 0x36, 0x49, 0x55, 0x22, 0x05, // & 0x00, 0x50, 0x60, 0x00, 0x00, // ' 0x00, 0x1C, 0x22, 0x41, 0x00, // ( 0x00, 0x41, 0x22, 0x1C, 0x00, // ) 0x08, 0x2A, 0x1C, 0x2A, 0x08, // * 0x08, 0x08, 0x3E, 0x08, 0x08, // + 0x00, 0x05, 0x06, 0x00, 0x00, // , 0x08, 0x08, 0x08, 0x08, 0x08, // - 0x00, 0x03, 0x03, 0x00, 0x00, // . 0x02, 0x04, 0x08, 0x10, 0x20, // / 0x3E, 0x45, 0x49, 0x51, 0x3E, // 0 0x00, 0x21, 0x7F, 0x01, 0x00, // 1 0x21, 0x43, 0x45, 0x49, 0x31, // 2 0x42, 0x41, 0x51, 0x69, 0x46, // 3 0x0C, 0x14, 0x24, 0x7F, 0x04, // 4 0x72, 0x51, 0x51, 0x51, 0x4E, // 5 0x1E, 0x29, 0x49, 0x49, 0x06, // 6 0x40, 0x47, 0x48, 0x50, 0x60, // 7 0x36, 0x49, 0x49, 0x49, 0x36, // 8 0x30, 0x49, 0x49, 0x4A, 0x3C, // 9 0x00, 0x36, 0x36, 0x00, 0x00, // : 0x00, 0x35, 0x36, 0x00, 0x00, // ; 0x00, 0x08, 0x14, 0x22, 0x41, // < 0x14, 0x14, 0x14, 0x14, 0x14, // = 0x41, 0x22, 0x14, 0x08, 0x00, // > 0x20, 0x40, 0x45, 0x48, 0x30, // ? 0x26, 0x49, 0x4F, 0x41, 0x3E, // @ 0x3F, 0x44, 0x44, 0x44, 0x3F, // A 0x7F, 0x49, 0x49, 0x49, 0x36, // B 0x3E, 0x41, 0x41, 0x41, 0x22, // C 0x7F, 0x41, 0x41, 0x22, 0x1C, // D 0x7F, 0x49, 0x49, 0x49, 0x41, // E 0x7F, 0x48, 0x48, 0x40, 0x40, // F 0x3E, 0x41, 0x41, 0x45, 0x26, // G 0x7F, 0x08, 0x08, 0x08, 0x7F, // H 0x00, 0x41, 0x7F, 0x41, 0x00, // I 0x02, 0x01, 0x41, 0x7E, 0x40, // J 0x7F, 0x08, 0x14, 0x22, 0x41, // K 0x7F, 0x01, 0x01, 0x01, 0x01, // L 0x7F, 0x20, 0x10, 0x20, 0x7F, // M 0x7F, 0x10, 0x08, 0x04, 0x7F, // N 0x3E, 0x41, 0x41, 0x41, 0x3E, // O 0x7F, 0x48, 0x48, 0x48, 0x30, // P 0x3E, 0x41, 0x45, 0x42, 0x3D, // Q 0x7F, 0x48, 0x4C, 0x4A, 0x31, // R 0x31, 0x49, 0x49, 0x49, 0x46, // S 0x40, 0x40, 0x7F, 0x40, 0x40, // T 0x7E, 0x01, 0x01, 0x01, 0x7E, // U 0x7C, 0x02, 0x01, 0x02, 0x7C, // V 0x7F, 0x02, 0x0C, 0x02, 0x7F, // W 0x63, 0x14, 0x08, 0x14, 0x63, // X 0x60, 0x10, 0x0F, 0x10, 0x60, // Y 0x43, 0x45, 0x49, 0x51, 0x61, // Z 0x00, 0x00, 0x7F, 0x41, 0x41, // [ 0x20, 0x10, 0x08, 0x04, 0x02, // backslash 0x41, 0x41, 0x7F, 0x00, 0x00, // ] 0x10, 0x20, 0x40, 0x20, 0x10, // ^ 0x01, 0x01, 0x01, 0x01, 0x01, // _ 0x00, 0x40, 0x20, 0x10, 0x00, // ` 0x02, 0x15, 0x15, 0x15, 0x0F, // a 0x7F, 0x09, 0x11, 0x11, 0x0E, // b 0x0E, 0x11, 0x11, 0x11, 0x02, // c 0x0E, 0x11, 0x11, 0x09, 0x7F, // d 0x0E, 0x15, 0x15, 0x15, 0x0C, // e 0x08, 0x3F, 0x48, 0x40, 0x20, // f 0x08, 0x14, 0x15, 0x15, 0x1E, // g 0x7F, 0x08, 0x10, 0x10, 0x0F, // h 0x00, 0x11, 0x5F, 0x01, 0x00, // i 0x02, 0x01, 0x11, 0x5E, 0x00, // j 0x00, 0x7F, 0x04, 0x0A, 0x11, // k 0x00, 0x41, 0x7F, 0x01, 0x00, // l 0x1F, 0x10, 0x0C, 0x10, 0x0F, // m 0x1F, 0x08, 0x10, 0x10, 0x0F, // n 0x0E, 0x11, 0x11, 0x11, 0x0E, // o 0x1F, 0x14, 0x14, 0x14, 0x08, // p 0x08, 0x14, 0x14, 0x0C, 0x1F, // q 0x1F, 0x08, 0x10, 0x10, 0x08, // r 0x09, 0x15, 0x15, 0x15, 0x02, // s 0x10, 0x7E, 0x11, 0x01, 0x02, // t 0x1E, 0x01, 0x01, 0x02, 0x1F, // u 0x1C, 0x02, 0x01, 0x02, 0x1C, // v 0x1E, 0x01, 0x06, 0x01, 0x1E, // w 0x11, 0x0A, 0x04, 0x0A, 0x11, // x 0x18, 0x05, 0x05, 0x05, 0x1E, // y 0x11, 0x13, 0x15, 0x19, 0x11, // z 0x00, 0x08, 0x36, 0x41, 0x00, // { 0x00, 0x00, 0x7F, 0x00, 0x00, // | 0x00, 0x41, 0x36, 0x08, 0x00, // } 0x08, 0x08, 0x2A, 0x1C, 0x08, // -> 0x08, 0x1C, 0x2A, 0x08, 0x08, // <- }; bool font5x7_check(const char c) { return c>=' ' && c<='}'; } uint16_t font5x7_get(const char c) { return c - ' '; } Font font5x7 = {5, 7, &font5x7_data[0], font5x7_check, font5x7_get};