Wrapper for HD44780 automatically taking care of custom CGRAM patterns and partial redraws to optimize response times
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
hd44780-buf/src/cgram.c

679 lines
23 KiB

/**
* TODO file description
*/
#include "cgram.h"
const struct LcdBuf_CGRAM_Symbol CGRAM_CZ[] = {
{
.symbol = "ě",
.fallback = 'e',
.data = {
0b01010,
0b00100,
0b01110,
0b10001,
0b11111,
0b10000,
0b01110
},
},
{
.symbol = "š",
.fallback = 's',
.data = {
0b01010,
0b00100,
0b01110,
0b10000,
0b01110,
0b00001,
0b11110
},
},
{
.symbol = "č",
.fallback = 'c',
.data = {
0b01010,
0b00100,
0b01110,
0b10000,
0b10000,
0b10001,
0b01110
},
},
{
.symbol = "ř",
.fallback = 'r',
.data = {
0b01010,
0b00100,
0b10110,
0b11001,
0b10000,
0b10000,
0b10000
},
},
{
.symbol = "ž",
.fallback = 'z',
.data = {
0b01010,
0b00100,
0b11111,
0b00010,
0b00100,
0b01000,
0b11111
},
},
{
.symbol = "ý",
.fallback = 'y',
.data = {
0b00010,
0b00100,
0b10001,
0b10001,
0b01111,
0b00001,
0b01110
},
},
{
.symbol = "á",
.fallback = 'a',
.data = {
0b00010,
0b00100,
0b01110,
0b00001,
0b01111,
0b10001,
0b01111
},
},
{
.symbol = "í",
.fallback = 'i',
.data = {
0b00110,
0b00000,
0b01100,
0b00100,
0b00100,
0b00100,
0b01110
},
},
{
.symbol = "é",
.fallback = 'e',
.data = {
0b00010,
0b00100,
0b01110,
0b10001,
0b11111,
0b10000,
0b01110
},
},
{
.symbol = "ú",
.fallback = 'u',
.data = {
0b00010,
0b00100,
0b10001,
0b10001,
0b10001,
0b10011,
0b01101
},
},
{
.symbol = "ů",
.fallback = 'u',
.data = {
0b00100,
0b01010,
0b10101,
0b10001,
0b10001,
0b10011,
0b01101
},
},
{
.symbol = "ď",
.fallback = 'd',
.data = {
0b01101,
0b00001,
0b01101,
0b10011,
0b10001,
0b10001,
0b01111
},
},
{
.symbol = "ť",
.fallback = 't',
.data = {
0b01010,
0b01001,
0b11100,
0b01000,
0b01000,
0b01001,
0b00110
},
},
{
.symbol = "ň",
.fallback = 'n',
.data = {
0b01010,
0b00100,
0b10110,
0b11001,
0b10001,
0b10001,
0b10001
},
},
// UPPERCASE
{
.symbol = "Ě",
.fallback = 'E',
.data = {
0b01010,
0b00100,
0b11111,
0b10000,
0b11100,
0b10000,
0b11111
},
},
{
.symbol = "Š",
.fallback = 'S',
.data = {
0b01010,
0b00100,
0b01111,
0b10000,
0b01110,
0b00001,
0b11110
},
},
{
.symbol = "Č",
.fallback = 'C',
.data = {
0b01010,
0b00100,
0b01110,
0b10001,
0b10000,
0b10001,
0b01110
},
},
{
.symbol = "Ř",
.fallback = 'R',
.data = {
0b01010,
0b00100,
0b11110,
0b10001,
0b11110,
0b10010,
0b10001
},
},
{
.symbol = "Ž",
.fallback = 'Z',
.data = {
0b01010,
0b00100,
0b11111,
0b00001,
0b01110,
0b10000,
0b11111
},
},
{
.symbol = "Ý",
.fallback = 'Y',
.data = {
0b00010,
0b00100,
0b10001,
0b10001,
0b01010,
0b00100,
0b00100
},
},
{
.symbol = "Á",
.fallback = 'A',
.data = {
0b00010,
0b00100,
0b01110,
0b10001,
0b11111,
0b10001,
0b10001
},
},
{
.symbol = "Í",
.fallback = 'I',
.data = {
0b00010,
0b00100,
0b01110,
0b00100,
0b00100,
0b00100,
0b01110
},
},
{
.symbol = "É",
.fallback = 'E',
.data = {
0b00010,
0b00100,
0b11111,
0b10000,
0b11100,
0b10000,
0b11111
},
},
{
.symbol = "Ú",
.fallback = 'U',
.data = {
0b00010,
0b00100,
0b10001,
0b10001,
0b10001,
0b10001,
0b01110
},
},
{
.symbol = "Ů",
.fallback = 'U',
.data = {
0b00100,
0b01010,
0b10101,
0b10001,
0b10001,
0b10001,
0b01110
},
},
{
.symbol = "Ď",
.fallback = 'D',
.data = {
0b01010,
0b00100,
0b11100,
0b10010,
0b10001,
0b10010,
0b11100
},
},
{
.symbol = "Ť",
.fallback = 'T',
.data = {
0b01010,
0b00100,
0b11111,
0b00100,
0b00100,
0b00100,
0b00100
},
},
{
.symbol = "Ň",
.fallback = 'N',
.data = {
0b01010,
0b00100,
0b10001,
0b11001,
0b10101,
0b10011,
0b10001
},
},
// GUI symbols
{
.symbol = "🌢", // Humidity
.fallback = 'H',
.data = {
0b00100,
0b01110,
0b01110,
0b11111,
0b10111,
0b11111,
0b01110,
},
},
// Some useful glyphs for GUI with a keypad
{
.symbol = "🅰",
.fallback = 'A',
.data = {
0b11111,
0b11011,
0b10101,
0b10001,
0b10101,
0b10101,
0b11111,
},
},
{
.symbol = "🅱",
.fallback = 'B',
.data = {
0b11111,
0b10011,
0b10101,
0b10011,
0b10101,
0b10011,
0b11111,
},
},
{
.symbol = "🅲",
.fallback = 'C',
.data = {
0b11111,
0b11011,
0b10101,
0b10111,
0b10101,
0b11011,
0b11111,
},
},
{
.symbol = "🅳",
.fallback = 'D',
.data = {
0b11111,
0b10011,
0b10101,
0b10101,
0b10101,
0b10011,
0b11111,
},
},
{
.symbol = "",
.fallback = '1',
.data = {
0b11111,
0b11011,
0b10011,
0b11011,
0b11011,
0b10001,
0b11111,
},
},
{
.symbol = "",
.fallback = '2',
.data = {
0b11111,
0b11001,
0b10101,
0b11101,
0b11011,
0b10001,
0b11111,
},
},
{
.symbol = "",
.fallback = '3',
.data = {
0b11111,
0b10011,
0b11101,
0b10011,
0b11101,
0b10011,
0b11111,
},
},
{
.symbol = "",
.fallback = '4',
.data = {
0b11111,
0b10101,
0b10101,
0b10001,
0b11101,
0b11101,
0b11111,
},
},
{
.symbol = "",
.fallback = '*',
.data = {
0b11111,
0b11011,
0b01010,
0b10001,
0b01010,
0b11011,
0b11111,
},
},
{
.symbol = "¤",
.fallback = '#',
.data = {
0b11111,
0b10101,
0b00000,
0b10101,
0b00000,
0b10101,
0b11111,
},
},
{
.symbol = "",
.fallback = ' ',
.data = {
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
},
},
{
.symbol = "",
.fallback = '^',
.data = {
0b00100,
0b01110,
0b10101,
0b00100,
0b00100,
0b00100,
0b00100,
},
},
{
.symbol = "",
.fallback = 'v',
.data = {
0b00100,
0b00100,
0b00100,
0b00100,
0b10101,
0b01110,
0b00100,
},
},
{
.symbol = "",
.fallback = 0xE8,
.data = {
0b00000,
0b00000,
0b00001,
0b10011,
0b11110,
0b01100,
0b00000,
},
},
{}, /* end mark */
};
/*
// this should be more or less the default font
{{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}}, //
{{0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00000, 0b00100}}, // !
{{0b01010, 0b01010, 0b01010, 0b00000, 0b00000, 0b00000, 0b00000}}, // "
{{0b01010, 0b01010, 0b11111, 0b01010, 0b11111, 0b01010, 0b01010}}, // #
{{0b00100, 0b01111, 0b10100, 0b01110, 0b00101, 0b11110, 0b00100}}, // $
{{0b11000, 0b11001, 0b00010, 0b00100, 0b01000, 0b10011, 0b00011}}, // %
{{0b01100, 0b10010, 0b10100, 0b01000, 0b10101, 0b10010, 0b01101}}, // &
{{0b01100, 0b00100, 0b01000, 0b00000, 0b00000, 0b00000, 0b00000}}, // '
{{0b00010, 0b00100, 0b01000, 0b01000, 0b01000, 0b00100, 0b00010}}, // (
{{0b01000, 0b00100, 0b00010, 0b00010, 0b00010, 0b00100, 0b01000}}, // )
{{0b00000, 0b00100, 0b10101, 0b01110, 0b10101, 0b00100, 0b00000}}, // *
{{0b00000, 0b00100, 0b00100, 0b11111, 0b00100, 0b00100, 0b00000}}, // +
{{0b00000, 0b00000, 0b00000, 0b00000, 0b01100, 0b00100, 0b01000}}, // ,
{{0b00000, 0b00000, 0b00000, 0b11111, 0b00000, 0b00000, 0b00000}}, // -
{{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b01100, 0b01100}}, // .
{{0b00000, 0b00001, 0b00010, 0b00100, 0b01000, 0b10000, 0b00000}}, // /
{{0b01110, 0b10001, 0b10011, 0b10101, 0b11001, 0b10001, 0b01110}}, // 0
{{0b00100, 0b01100, 0b00100, 0b00100, 0b00100, 0b00100, 0b01110}}, // 1
{{0b01110, 0b10001, 0b00001, 0b00010, 0b00100, 0b01000, 0b11111}}, // 2
{{0b11111, 0b00010, 0b00100, 0b00010, 0b00001, 0b10001, 0b01110}}, // 3
{{0b00010, 0b00110, 0b01010, 0b10010, 0b11111, 0b00010, 0b00010}}, // 4
{{0b11111, 0b10000, 0b11110, 0b00001, 0b00001, 0b10001, 0b01110}}, // 5
{{0b00110, 0b01000, 0b10000, 0b11110, 0b10001, 0b10001, 0b01110}}, // 6
{{0b11111, 0b00001, 0b00010, 0b00100, 0b01000, 0b01000, 0b01000}}, // 7
{{0b01110, 0b10001, 0b10001, 0b01110, 0b10001, 0b10001, 0b01110}}, // 8
{{0b01110, 0b10001, 0b10001, 0b01111, 0b00001, 0b00010, 0b01100}}, // 9
{{0b00000, 0b01100, 0b01100, 0b00000, 0b01100, 0b01100, 0b00000}}, // :
{{0b00000, 0b01100, 0b01100, 0b00000, 0b01100, 0b00100, 0b01000}}, // ;
{{0b00010, 0b00100, 0b01000, 0b10000, 0b01000, 0b00100, 0b00010}}, // <
{{0b00000, 0b00000, 0b11111, 0b00000, 0b11111, 0b00000, 0b00000}}, // =
{{0b01000, 0b00100, 0b00010, 0b00001, 0b00010, 0b00100, 0b01000}}, // >
{{0b01110, 0b10001, 0b00001, 0b00010, 0b00100, 0b00000, 0b00100}}, // ?
{{0b01110, 0b10001, 0b00001, 0b01101, 0b10101, 0b10101, 0b01110}}, // @
{{0b01110, 0b10001, 0b10001, 0b10001, 0b11111, 0b10001, 0b10001}}, // A
{{0b11110, 0b10001, 0b10001, 0b11110, 0b10001, 0b10001, 0b11110}}, // B
{{0b01110, 0b10001, 0b10000, 0b10000, 0b10000, 0b10001, 0b01110}}, // C
{{0b11100, 0b10010, 0b10001, 0b10001, 0b10001, 0b10010, 0b11100}}, // D
{{0b11111, 0b10000, 0b10000, 0b11110, 0b10000, 0b10000, 0b11111}}, // E
{{0b11111, 0b10000, 0b10000, 0b11110, 0b10000, 0b10000, 0b10000}}, // F
{{0b01110, 0b10001, 0b10000, 0b10111, 0b10001, 0b10001, 0b01111}}, // G
{{0b10001, 0b10001, 0b10001, 0b11111, 0b10001, 0b10001, 0b10001}}, // H
{{0b01110, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b01110}}, // I
{{0b00111, 0b00010, 0b00010, 0b00010, 0b00010, 0b10010, 0b01100}}, // J
{{0b10001, 0b10010, 0b10100, 0b11000, 0b10100, 0b10010, 0b10001}}, // K
{{0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111}}, // L
{{0b10001, 0b11011, 0b10101, 0b10101, 0b10001, 0b10001, 0b10001}}, // M
{{0b10001, 0b10001, 0b11001, 0b10101, 0b10011, 0b10001, 0b10001}}, // N
{{0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110}}, // O
{{0b11110, 0b10001, 0b10001, 0b11110, 0b10000, 0b10000, 0b10000}}, // P
{{0b01110, 0b10001, 0b10001, 0b10001, 0b10101, 0b10010, 0b01101}}, // Q
{{0b11110, 0b10001, 0b10001, 0b11110, 0b10100, 0b10010, 0b10001}}, // R
{{0b01111, 0b10000, 0b10000, 0b01110, 0b00001, 0b00001, 0b11110}}, // S
{{0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100}}, // T
{{0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110}}, // U
{{0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01010, 0b00100}}, // V
{{0b10001, 0b10001, 0b10001, 0b10101, 0b10101, 0b10101, 0b01010}}, // W
{{0b10001, 0b10001, 0b01010, 0b00100, 0b01010, 0b10001, 0b10001}}, // X
{{0b10001, 0b10001, 0b10001, 0b01010, 0b00100, 0b00100, 0b00100}}, // Y
{{0b11111, 0b00001, 0b00010, 0b00100, 0b01000, 0b10000, 0b11111}}, // Z
{{0b01110, 0b01000, 0b01000, 0b01000, 0b01000, 0b01000, 0b01110}}, // [
{{0b00000, 0b10000, 0b01000, 0b00100, 0b00010, 0b00001, 0b00000}}, // \
{{0b01110, 0b00010, 0b00010, 0b00010, 0b00010, 0b00010, 0b01110}}, // ]
{{0b00100, 0b01010, 0b10001, 0b00000, 0b00000, 0b00000, 0b00000}}, // ^
{{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111}}, // _
{{0b01000, 0b00100, 0b00010, 0b00000, 0b00000, 0b00000, 0b00000}}, // `
{{0b00000, 0b00000, 0b01110, 0b00001, 0b01111, 0b10001, 0b01111}}, // a
{{0b10000, 0b10000, 0b10110, 0b11001, 0b10001, 0b10001, 0b11110}}, // b
{{0b00000, 0b00000, 0b01110, 0b10000, 0b10000, 0b10001, 0b01110}}, // c
{{0b00001, 0b00001, 0b01101, 0b10011, 0b10001, 0b10001, 0b01111}}, // d
{{0b00000, 0b00000, 0b01110, 0b10001, 0b11111, 0b10000, 0b01110}}, // e
{{0b00110, 0b01001, 0b01000, 0b11100, 0b01000, 0b01000, 0b01000}}, // f
{{0b00000, 0b01111, 0b10001, 0b10001, 0b01111, 0b00001, 0b01110}}, // g
{{0b10000, 0b10000, 0b10110, 0b11001, 0b10001, 0b10001, 0b10001}}, // h
{{0b00100, 0b00000, 0b01100, 0b00100, 0b00100, 0b00100, 0b01110}}, // i
{{0b00010, 0b00000, 0b00110, 0b00010, 0b00010, 0b10010, 0b01100}}, // j
{{0b10000, 0b10000, 0b10010, 0b10100, 0b11000, 0b10100, 0b10010}}, // k
{{0b01100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b01110}}, // l
{{0b00000, 0b00000, 0b11010, 0b10101, 0b10101, 0b10001, 0b10001}}, // m
{{0b00000, 0b00000, 0b10110, 0b11001, 0b10001, 0b10001, 0b10001}}, // n
{{0b00000, 0b00000, 0b01110, 0b10001, 0b10001, 0b10001, 0b01110}}, // o
{{0b00000, 0b00000, 0b11110, 0b10001, 0b11110, 0b10000, 0b10000}}, // p
{{0b00000, 0b00000, 0b01101, 0b10011, 0b01111, 0b00001, 0b00001}}, // q
{{0b00000, 0b00000, 0b10110, 0b11001, 0b10000, 0b10000, 0b10000}}, // r
{{0b00000, 0b00000, 0b01110, 0b10000, 0b01110, 0b00001, 0b11110}}, // s
{{0b01000, 0b01000, 0b11100, 0b01000, 0b01000, 0b01001, 0b00110}}, // t
{{0b00000, 0b00000, 0b10001, 0b10001, 0b10001, 0b10011, 0b01101}}, // u
{{0b00000, 0b00000, 0b10001, 0b10001, 0b10001, 0b01010, 0b00100}}, // v
{{0b00000, 0b00000, 0b10001, 0b10001, 0b10101, 0b10101, 0b01010}}, // w
{{0b00000, 0b00000, 0b10001, 0b01010, 0b00100, 0b01010, 0b10001}}, // x
{{0b00000, 0b00000, 0b10001, 0b10001, 0b01111, 0b00001, 0b01110}}, // y
{{0b00000, 0b00000, 0b11111, 0b00010, 0b00100, 0b01000, 0b11111}}, // z
{{0b00010, 0b00100, 0b00100, 0b01000, 0b00100, 0b00100, 0b00010}}, // {
{{0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100}}, // |
{{0b01000, 0b00100, 0b00100, 0b00010, 0b00100, 0b00100, 0b01000}}, // }
{{0b00000, 0b00000, 0b00000, 0b01101, 0b10010, 0b00000, 0b00000}}, // ~
*/