00001
00002
00003
00004
00005
00006
00007
00057 prog_uint8_t hd44780_charset_pl[64] =
00058 {
00059 0x00, 0x0E, 0x01, 0x0F, 0x11, 0x0F, 0x02, 0x01,
00060 0x02, 0x04, 0x0E, 0x10, 0x10, 0x11, 0x0E, 0x00,
00061 0x00, 0x0E, 0x11, 0x1F, 0x10, 0x0E, 0x04, 0x02,
00062 0x0C, 0x04, 0x06, 0x04, 0x0C, 0x04, 0x0E, 0x00,
00063 0x02, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00,
00064 0x02, 0x04, 0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00,
00065 0x02, 0x04, 0x0E, 0x10, 0x0E, 0x01, 0x1E, 0x00,
00066 0x04, 0x00, 0x1F, 0x02, 0x04, 0x08, 0x1F, 0x00,
00067
00068 };
00069
00070
00071 #if !defined(HD44780_CODEPAGE) || (HD44780_CODEPAGE == HD44780_CODEPAGE_ASCII)
00072 #elif (HD44780_CODEPAGE == HD44780_CODEPAGE_ISO8859_2)
00073 # define _HD44780_CHAR_REWRITE(c) \
00074 { \
00075 if (c == 0xB1 || c == 0xA1) \
00076 c = 0; \
00077 else if (c == 0xE6 || c == 0xC6) \
00078 c = 1; \
00079 else if (c == 0xEA || c == 0xCA) \
00080 c = 2; \
00081 else if (c == 0xB3 || c == 0xA3) \
00082 c = 3; \
00083 else if (c == 0xF1 || c == 0xD1) \
00084 c = 4; \
00085 else if (c == 0xF3 || c == 0xD3) \
00086 c = 5; \
00087 else if (c == 0xB6 || c == 0xA6) \
00088 c = 6; \
00089 else if (c == 0xBF || c == 0xBC || c == 0xAF || c == 0xAC) \
00090 c = 7; \
00091 }
00092 #elif HD44780_CODEPAGE == HD44780_CODEPAGE_CP1250
00093 # define _HD44780_CHAR_REWRITE(c) \
00094 { \
00095 if (c == 0xA5 || c == 0xB9) \
00096 c = 0; \
00097 else if (c == 0xE6 || c == 0xC6) \
00098 c = 1; \
00099 else if (c == 0xEA || c == 0xCA) \
00100 c = 2; \
00101 else if (c == 0xB3 || c == 0xA3) \
00102 c = 3; \
00103 else if (c == 0xF1 || c == 0xD1) \
00104 c = 4; \
00105 else if (c == 0xF3 || c == 0xD3) \
00106 c = 5; \
00107 else if (c == 0x8C || c == 0x9C) \
00108 c = 6; \
00109 else if (c == 0xAF || c == 0xBF || c == 0x8F || c == 0x9F) \
00110 c = 7; \
00111 }
00112 #elif HD44780_CODEPAGE == HD44780_CODEPAGE_UTF8
00113 uint8_t _hd44780_char_rewrite_unicodeBuff = 0;
00114 # define _HD44780_CHAR_REWRITE(c) \
00115 { \
00116 if (c >= 0xC3 && c <= 0xC5) \
00117 { \
00118 _hd44780_char_rewrite_unicodeBuff = c; \
00119 return; \
00120 } \
00121 \
00122 if (_hd44780_char_rewrite_unicodeBuff == 0xC4 && c >= 0x84 && c <= 0x87) \
00123 c = (c / 2) - 0x42; \
00124 else if (c >= 0x81 && c <= 0x84) \
00125 c = ((c + 1) / 2) - 0x3E; \
00126 else if (c == 0x93 || c == 0xB3) \
00127 c = 5; \
00128 else if (c >= 0x98 && c <= 0x9B) \
00129 c = ((c / 2) - 0x4C) * 4 + 2; \
00130 else if (c >= 0xB9 && c <= 0xBC) \
00131 c = 7; \
00132 }
00133 #else
00134 # error "To kodowanie nie jest obsługiwane w tym zestawie znaków"
00135 #endif