pitrix/src/fonts.cpp

172 lines
6.3 KiB
C++

#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};