Доработка библиотеки русского шрифта

MSerega
Offline
Зарегистрирован: 04.04.2020

В одном из проектов по написанию бегущей строки я нашел такую библиотеку по выводу русского шрифта. Как можно доработать ее и дописать туда буквы украинского языка і, ї, ґ
Понятно что нужно прописать код по строчках для каждой буквы, но каким методом его взять?

// шрифты для вывода текста
const uint8_t fontHEX[][5] PROGMEM = {
	{0x00, 0x00, 0x00, 0x00, 0x00}, //   0x20 32
	{0x00, 0x00, 0x6f, 0x00, 0x00}, // ! 0x21 33
	{0x00, 0x07, 0x00, 0x07, 0x00}, // " 0x22 34
	{0x14, 0x7f, 0x14, 0x7f, 0x14}, // # 0x23 35
	{0x00, 0x07, 0x04, 0x1e, 0x00}, // $ 0x24 36
	{0x23, 0x13, 0x08, 0x64, 0x62}, // % 0x25 37
	{0x36, 0x49, 0x56, 0x20, 0x50}, // & 0x26 38
	{0x00, 0x00, 0x07, 0x00, 0x00}, // ' 0x27 39
	{0x00, 0x1c, 0x22, 0x41, 0x00}, // ( 0x28 40
	{0x00, 0x41, 0x22, 0x1c, 0x00}, // ) 0x29 41
	{0x14, 0x08, 0x3e, 0x08, 0x14}, // * 0x2a 42
	{0x08, 0x08, 0x3e, 0x08, 0x08}, // + 0x2b 43
	{0x00, 0x50, 0x30, 0x00, 0x00}, // , 0x2c 44
	{0x08, 0x08, 0x08, 0x08, 0x08}, // - 0x2d 45
	{0x00, 0x60, 0x60, 0x00, 0x00}, // . 0x2e 46
	{0x20, 0x10, 0x08, 0x04, 0x02}, // / 0x2f 47
	{0x3e, 0x51, 0x49, 0x45, 0x3e}, // 0 0x30 48
	{0x00, 0x42, 0x7f, 0x40, 0x00}, // 1 0x31 49
	{0x42, 0x61, 0x51, 0x49, 0x46}, // 2 0x32 50
	{0x21, 0x41, 0x45, 0x4b, 0x31}, // 3 0x33 51
	{0x18, 0x14, 0x12, 0x7f, 0x10}, // 4 0x34 52
	{0x27, 0x45, 0x45, 0x45, 0x39}, // 5 0x35 53
	{0x3c, 0x4a, 0x49, 0x49, 0x30}, // 6 0x36 54
	{0x01, 0x71, 0x09, 0x05, 0x03}, // 7 0x37 55
	{0x36, 0x49, 0x49, 0x49, 0x36}, // 8 0x38 56
	{0x06, 0x49, 0x49, 0x29, 0x1e}, // 9 0x39 57
	{0x00, 0x36, 0x36, 0x00, 0x00}, // : 0x3a 58
	{0x00, 0x56, 0x36, 0x00, 0x00}, // ; 0x3b 59
	{0x08, 0x14, 0x22, 0x41, 0x00}, // < 0x3c 60
	{0x14, 0x14, 0x14, 0x14, 0x14}, // = 0x3d 61
	{0x00, 0x41, 0x22, 0x14, 0x08}, // > 0x3e 62
	{0x02, 0x01, 0x51, 0x09, 0x06}, // ? 0x3f 63
	{0x3e, 0x41, 0x5d, 0x49, 0x4e}, // @ 0x40 64
	{0x7e, 0x09, 0x09, 0x09, 0x7e}, // A 0x41 65
	{0x7f, 0x49, 0x49, 0x49, 0x36}, // B 0x42 66
	{0x3e, 0x41, 0x41, 0x41, 0x22}, // C 0x43 67
	{0x7f, 0x41, 0x41, 0x41, 0x3e}, // D 0x44 68
	{0x7f, 0x49, 0x49, 0x49, 0x41}, // E 0x45 69
	{0x7f, 0x09, 0x09, 0x09, 0x01}, // F 0x46 70
	{0x3e, 0x41, 0x49, 0x49, 0x7a}, // G 0x47 71
	{0x7f, 0x08, 0x08, 0x08, 0x7f}, // H 0x48 72
	{0x00, 0x41, 0x7f, 0x41, 0x00}, // I 0x49 73
	{0x20, 0x40, 0x41, 0x3f, 0x01}, // J 0x4a 74
	{0x7f, 0x08, 0x14, 0x22, 0x41}, // K 0x4b 75
	{0x7f, 0x40, 0x40, 0x40, 0x40}, // L 0x4c 76
	{0x7f, 0x02, 0x0c, 0x02, 0x7f}, // M 0x4d 77
	{0x7f, 0x04, 0x08, 0x10, 0x7f}, // N 0x4e 78
	{0x3e, 0x41, 0x41, 0x41, 0x3e}, // O 0x4f 79
	{0x7f, 0x09, 0x09, 0x09, 0x06}, // P 0x50 80
	{0x3e, 0x41, 0x51, 0x21, 0x5e}, // Q 0x51 81
	{0x7f, 0x09, 0x19, 0x29, 0x46}, // R 0x52 82
	{0x46, 0x49, 0x49, 0x49, 0x31}, // S 0x53 83
	{0x01, 0x01, 0x7f, 0x01, 0x01}, // T 0x54 84
	{0x3f, 0x40, 0x40, 0x40, 0x3f}, // U 0x55 85
	{0x0f, 0x30, 0x40, 0x30, 0x0f}, // V 0x56 86
	{0x3f, 0x40, 0x30, 0x40, 0x3f}, // W 0x57 87
	{0x63, 0x14, 0x08, 0x14, 0x63}, // X 0x58 88
	{0x07, 0x08, 0x70, 0x08, 0x07}, // Y 0x59 89
	{0x61, 0x51, 0x49, 0x45, 0x43}, // Z 0x5a 90
	{0x3c, 0x4a, 0x49, 0x29, 0x1e}, // [ 0x5b 91
	{0x02, 0x04, 0x08, 0x10, 0x20}, // \ 0x5c 92
	{0x00, 0x41, 0x7f, 0x00, 0x00}, // ] 0x5d 93
	{0x04, 0x02, 0x01, 0x02, 0x04}, // ^ 0x5e 94
	{0x40, 0x40, 0x40, 0x40, 0x40}, // _ 0x5f 95
	{0x00, 0x00, 0x03, 0x04, 0x00}, // ` 0x60 96
	{0x20, 0x54, 0x54, 0x54, 0x78}, // a 0x61 97
	{0x7f, 0x48, 0x44, 0x44, 0x38}, // b 0x62 98
	{0x38, 0x44, 0x44, 0x44, 0x20}, // c 0x63 99
	{0x38, 0x44, 0x44, 0x48, 0x7f}, // d 0x64 100
	{0x38, 0x54, 0x54, 0x54, 0x18}, // e 0x65 101
	{0x08, 0x7e, 0x09, 0x01, 0x02}, // f 0x66 102
	{0x0c, 0x52, 0x52, 0x52, 0x3e}, // g 0x67 103
	{0x7f, 0x08, 0x04, 0x04, 0x78}, // h 0x68 104
	{0x00, 0x44, 0x7d, 0x40, 0x00}, // i 0x69 105
	{0x20, 0x40, 0x44, 0x3d, 0x00}, // j 0x6a 106
	{0x00, 0x7f, 0x10, 0x28, 0x44}, // k 0x6b 107
	{0x00, 0x41, 0x7f, 0x40, 0x00}, // l 0x6c 108
	{0x7c, 0x04, 0x18, 0x04, 0x78}, // m 0x6d 109
	{0x7c, 0x08, 0x04, 0x04, 0x78}, // n 0x6e 110
	{0x38, 0x44, 0x44, 0x44, 0x38}, // o 0x6f 111
	{0x7c, 0x14, 0x14, 0x14, 0x08}, // p 0x70 112
	{0x08, 0x14, 0x14, 0x18, 0x7c}, // q 0x71 113
	{0x7c, 0x08, 0x04, 0x04, 0x08}, // r 0x72 114
	{0x48, 0x54, 0x54, 0x54, 0x20}, // s 0x73 115
	{0x04, 0x3f, 0x44, 0x40, 0x20}, // t 0x74 116
	{0x3c, 0x40, 0x40, 0x20, 0x7c}, // u 0x75 117
	{0x1c, 0x20, 0x40, 0x20, 0x1c}, // v 0x76 118
	{0x3c, 0x40, 0x30, 0x40, 0x3c}, // w 0x77 119
	{0x44, 0x28, 0x10, 0x28, 0x44}, // x 0x78 120
	{0x0c, 0x50, 0x50, 0x50, 0x3c}, // y 0x79 121
	{0x44, 0x64, 0x54, 0x4c, 0x44}, // z 0x7a 122
	{0x00, 0x08, 0x36, 0x41, 0x41}, // { 0x7b 123
	{0x00, 0x00, 0x7f, 0x00, 0x00}, // | 0x7c 124
	{0x41, 0x41, 0x36, 0x08, 0x00}, // } 0x7d 125
	{0x04, 0x02, 0x04, 0x08, 0x04}, // ~ 0x7e 126
	
	{0x7E, 0x11, 0x11, 0x11, 0x7E},	//__А (0xC0).
	{0x7F, 0x49, 0x49, 0x49, 0x33},	//__Б (0xC1).
	{0x7F, 0x49, 0x49, 0x49, 0x36},	//__В (0xC2).
	{0x7F, 0x01, 0x01, 0x01, 0x03},	//__Г (0xC3).
	{0xE0, 0x51, 0x4F, 0x41, 0xFF},	//__Д (0xC4).
	{0x7F, 0x49, 0x49, 0x49, 0x41},	//__Е (0xC5).
	{0x77, 0x08, 0x7F, 0x08, 0x77},	//__Ж (0xC6).
	{0x41, 0x49, 0x49, 0x49, 0x36},	//__З (0xC7).
	{0x7F, 0x10, 0x08, 0x04, 0x7F},	//__И (0xC8).
	{0x7C, 0x21, 0x12, 0x09, 0x7C},	//__Й (0xC9).
	{0x7F, 0x08, 0x14, 0x22, 0x41},	//__К (0xCA).
	{0x20, 0x41, 0x3F, 0x01, 0x7F},	//__Л (0xCB).
	{0x7F, 0x02, 0x0C, 0x02, 0x7F},	//__М (0xCC).
	{0x7F, 0x08, 0x08, 0x08, 0x7F},	//__Н (0xCD).
	{0x3E, 0x41, 0x41, 0x41, 0x3E},	//__О (0xCE).
	{0x7F, 0x01, 0x01, 0x01, 0x7F},	//__П (0xCF).
	{0x7F, 0x09, 0x09, 0x09, 0x06},	//__Р (0xD0).
	{0x3E, 0x41, 0x41, 0x41, 0x22},	//__С (0xD1).
	{0x01, 0x01, 0x7F, 0x01, 0x01},	//__Т (0xD2).
	{0x47, 0x28, 0x10, 0x08, 0x07},	//__У (0xD3).
	{0x1C, 0x22, 0x7F, 0x22, 0x1C},	//__Ф (0xD4).
	{0x63, 0x14, 0x08, 0x14, 0x63},	//__Х (0xD5).
	{0x7F, 0x40, 0x40, 0x40, 0xFF},	//__Ц (0xD6).
	{0x07, 0x08, 0x08, 0x08, 0x7F},	//__Ч (0xD7).
	{0x7F, 0x40, 0x7F, 0x40, 0x7F},	//__Ш (0xD8).
	{0x7F, 0x40, 0x7F, 0x40, 0xFF},	//__Щ (0xD9).
	{0x01, 0x7F, 0x48, 0x48, 0x30},	//__Ъ (0xDA).
	{0x7F, 0x48, 0x30, 0x00, 0x7F},	//__Ы (0xDB).
	{0x00, 0x7F, 0x48, 0x48, 0x30},	//__Ь (0xDC).
	{0x22, 0x41, 0x49, 0x49, 0x3E},	//__Э (0xDD).
	{0x7F, 0x08, 0x3E, 0x41, 0x3E},	//__Ю (0xDE).
	{0x46, 0x29, 0x19, 0x09, 0x7F},	//__Я (0xDF).

	{0x20, 0x54, 0x54, 0x54, 0x78},	//__а (0xE0).
	{0x3C, 0x4A, 0x4A, 0x49, 0x31},	//__б (0xE1).
	{0x7C, 0x54, 0x54, 0x28, 0x00},	//__в (0xE2).
	{0x7C, 0x04, 0x04, 0x0C, 0x00},	//__г (0xE3).
	{0xE0, 0x54, 0x4C, 0x44, 0xFC},	//__д (0xE4).
	{0x38, 0x54, 0x54, 0x54, 0x18},	//__е (0xE5).
	{0x6C, 0x10, 0x7C, 0x10, 0x6C},	//__ж (0xE6).
	{0x44, 0x54, 0x54, 0x28, 0x00},	//__з (0xE7).
	{0x7C, 0x20, 0x10, 0x08, 0x7C},	//__и (0xE8).
	{0x78, 0x42, 0x24, 0x12, 0x78},	//__й (0xE9).
	{0x7C, 0x10, 0x28, 0x44, 0x00},	//__к (0xEA).
	{0x20, 0x44, 0x3C, 0x04, 0x7C},	//__л (0xEB).
	{0x7C, 0x08, 0x10, 0x08, 0x7C},	//__м (0xEC).
	{0x7C, 0x10, 0x10, 0x10, 0x7C},	//__н (0xED).
	{0x38, 0x44, 0x44, 0x44, 0x38},	//__о (0xEE).
	{0x7C, 0x04, 0x04, 0x04, 0x7C},	//__п (0xEF).
	{0x7C, 0x14, 0x14, 0x14, 0x08},	//__р (0xF0).
	{0x38, 0x44, 0x44, 0x44, 0x00},	//__с (0xF1).
	{0x04, 0x04, 0x7C, 0x04, 0x04},	//__т (0xF2).
	{0x0C, 0x50, 0x50, 0x50, 0x3C},	//__у (0xF3).
	{0x30, 0x48, 0xFE, 0x48, 0x30},	//__ф (0xF4).
	{0x44, 0x28, 0x10, 0x28, 0x44},	//__х (0xF5).
	{0x7C, 0x40, 0x40, 0x7C, 0xC0},	//__ц (0xF6).
	{0x0C, 0x10, 0x10, 0x10, 0x7C},	//__ч (0xF7).
	{0x7C, 0x40, 0x7C, 0x40, 0x7C},	//__ш (0xF8).
	{0x7C, 0x40, 0x7C, 0x40, 0xFC},	//__щ (0xF9).
	{0x04, 0x7C, 0x50, 0x50, 0x20},	//__ъ (0xFA).
	{0x7C, 0x50, 0x50, 0x20, 0x7C},	//__ы (0xFB).
	{0x7C, 0x50, 0x50, 0x20, 0x00},	//__ь (0xFC).
	{0x28, 0x44, 0x54, 0x54, 0x38},	//__э (0xFD).
	{0x7C, 0x10, 0x38, 0x44, 0x38},	//__ю (0xFE).
	{0x08, 0x54, 0x34, 0x14, 0x7C},	//__я (0xFF). 
	/*
	{0x7e, 0x09, 0x09, 0x09, 0x7e}, // А 192
	{0x7F, 0x49, 0x49, 0x49, 0x71}, // Б
	{0x7f, 0x49, 0x49, 0x49, 0x36}, // В
	{0x7F, 0x01, 0x01, 0x01, 0x01}, // Г
	{0x60, 0x3E, 0x21, 0x3F, 0x60}, // Д
	{0x7f, 0x49, 0x49, 0x49, 0x41}, // Е
	{0x76, 0x08, 0x7F, 0x08, 0x76}, // Ж
	{0x21, 0x41, 0x45, 0x4b, 0x31}, // З
	{0x7F, 0x20, 0x10, 0x08, 0x7F}, // И
	{0x7E, 0x20, 0x11, 0x08, 0x7E}, // Й
	{0x7f, 0x08, 0x14, 0x22, 0x41}, // К
	{0x70, 0x0E, 0x01, 0x01, 0x7F}, // Л
	{0x7f, 0x02, 0x0c, 0x02, 0x7f}, // М
	{0x7f, 0x08, 0x08, 0x08, 0x7f}, // Н
	{0x3e, 0x41, 0x41, 0x41, 0x3e}, // О
	{0x7F, 0x01, 0x01, 0x01, 0x7F}, // П
	{0x7f, 0x09, 0x09, 0x09, 0x06}, // Р
	{0x3e, 0x41, 0x41, 0x41, 0x22}, // С
	{0x01, 0x01, 0x7f, 0x01, 0x01}, // Т
	{0x07, 0x48, 0x48, 0x48, 0x7F}, // У
	{0x1C, 0x22, 0x7F, 0x22, 0x1C}, // Ф
	{0x63, 0x14, 0x08, 0x14, 0x63}, // Х
	{0x7F, 0x40, 0x40, 0x7F, 0xC0}, // Ц
	{0x07, 0x08, 0x08, 0x08, 0x7F}, // Ч
	{0x7F, 0x40, 0x7F, 0x40, 0x7F}, // Ш
	{0x7F, 0x40, 0x7F, 0x40, 0xFF}, // Щ
	{0x01, 0x7F, 0x48, 0x48, 0x70}, // Ъ
	{0x7F, 0x48, 0x70, 0x00, 0x7F}, // Ы
	{0x00, 0x7F, 0x48, 0x48, 0x70}, // Ь
	{0x22, 0x41, 0x49, 0x49, 0x3E}, // Э
	{0x7F, 0x08, 0x3E, 0x41, 0x3E}, // Ю
	{0x46, 0x29, 0x19, 0x09, 0x7F}, // Я 223

	{0x20, 0x54, 0x54, 0x54, 0x78}, //a 224
	{0x3c, 0x4a, 0x4a, 0x49, 0x31}, //б
	{0x7c, 0x54, 0x54, 0x28, 0x00}, //в
	{0x7c, 0x04, 0x04, 0x04, 0x0c}, //г
	{0xe0, 0x54, 0x4c, 0x44, 0xfc}, //д
	{0x38, 0x54, 0x54, 0x54, 0x18}, //e
	{0x6c, 0x10, 0x7c, 0x10, 0x6c}, //ж
	{0x44, 0x44, 0x54, 0x54, 0x28}, //з
	{0x7c, 0x20, 0x10, 0x08, 0x7c}, //и
	{0x7c, 0x41, 0x22, 0x11, 0x7c}, //й
	{0x7c, 0x10, 0x28, 0x44, 0x00}, //к
	{0x20, 0x44, 0x3c, 0x04, 0x7c}, //л
	{0x7c, 0x08, 0x10, 0x08, 0x7c}, //м
	{0x7c, 0x10, 0x10, 0x10, 0x7c}, //н
	{0x38, 0x44, 0x44, 0x44, 0x38}, //o
	{0x7c, 0x04, 0x04, 0x04, 0x7c}, //п
	{0x7C, 0x14, 0x14, 0x14, 0x08}, //p
	{0x38, 0x44, 0x44, 0x44, 0x20}, //c
	{0x04, 0x04, 0x7c, 0x04, 0x04}, //т
	{0x0C, 0x50, 0x50, 0x50, 0x3C}, //у
	{0x30, 0x48, 0xfc, 0x48, 0x30}, //ф
	{0x44, 0x28, 0x10, 0x28, 0x44}, //x
	{0x7c, 0x40, 0x40, 0x40, 0xfc}, //ц
	{0x0c, 0x10, 0x10, 0x10, 0x7c}, //ч
	{0x7c, 0x40, 0x7c, 0x40, 0x7c}, //ш
	{0x7c, 0x40, 0x7c, 0x40, 0xfc}, //щ
	{0x04, 0x7c, 0x50, 0x50, 0x20}, //ъ
	{0x7c, 0x50, 0x50, 0x20, 0x7c}, //ы
	{0x7c, 0x50, 0x50, 0x20, 0x00}, //ь
	{0x28, 0x44, 0x54, 0x54, 0x38}, //э
	{0x7c, 0x10, 0x38, 0x44, 0x38}, //ю
	{0x08, 0x54, 0x34, 0x14, 0x7c}, //я 255
*/
};

 

b707
Offline
Зарегистрирован: 26.05.2017

два варианта

1. Найти украинский фонт в таком же формате

2. Нарисовать самому три буквы

MSerega
Offline
Зарегистрирован: 04.04.2020

b707 пишет:

два варианта

1. Найти украинский фонт в таком же формате

2. Нарисовать самому три буквы

Пробывал искать, пока не нашел. Как и в чем рисовать?  Мне не сложно самому сделать, знать бы как? чтобы взять пример вот любую букву готовую и сделать по аналогу. Я так понял код зеленого цвета это взят из Таблицы символов в Windows.

b707
Offline
Зарегистрирован: 26.05.2017

MSerega пишет:

 взять пример вот любую букву готовую и сделать по аналогу.

вот перед тобой сотня готовых букв :) Кодируются они очень просто - каждый байт что ты видишь в табличке - это цепочка из восьми точек или по горизонтали. или по вертикали. Судя по тому. что в каждой букве пять байт - размер шрифта 5х8 и байты закодированы вертикально. Возьми листочек в клеточку и нарисуй любую буквы из таблички - и все поймешь

общий принцип такой, только на картинке байты по горизонтали. а в твоем фонте, возможно, по вертикали:

 

MSerega
Offline
Зарегистрирован: 04.04.2020

А нету програмки какой то? Я то понял как рисовать, но не понял откуда код береться :) прости. И почем 8 на 5 если матрица 8 на 8

http://arduino.on.kg/matrix-font вот нашел кому нужно)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

байт ставится вертикально потомушта

MSerega
Offline
Зарегистрирован: 04.04.2020

А вот только не пойму, а как вот есть буква "і" английская и "і" украинская, рисовать оно должно одно и тоже, но как ему это задать что это именно украинская буква прописываться? там же опись идет какой код в коментариях, а не в коде вывода пикселей.

b707
Offline
Зарегистрирован: 26.05.2017

Серега, ну ты вообще темный что ли? - про таблицу ASCII и различные кодировки символов слыхал что-нить? - нагугли и почитай

MSerega
Offline
Зарегистрирован: 04.04.2020

b707 пишет:

Серега, ну ты вообще темный что ли? - про таблицу ASCII и различные кодировки символов слыхал что-нить? - нагугли и почитай

я частично понимаю, у каждой буквы есть свой ASCII код, дальше пока остановился :(

b707
Offline
Зарегистрирован: 26.05.2017

MSerega пишет:

я частично понимаю, у каждой буквы есть свой ASCII код, дальше пока остановился :(

вот этот код и написан в табличке справа, в комментах. Твоя задача - выяснить какой код твоей буквы i в украинской кодировке - и вставить букву в нужное место в таблице

MSerega
Offline
Зарегистрирован: 04.04.2020

b707 пишет:

MSerega пишет:

я частично понимаю, у каждой буквы есть свой ASCII код, дальше пока остановился :(

вот этот код и написан в табличке справа, в комментах. Твоя задача - выяснить какой код твоей буквы i в украинской кодировке - и вставить букву в нужное место в таблице

Вот только как быть если я нахожу одинаковые символы но с разным кодом?

Вот нашел что то не знаю это наверное не оно - http://slebloglogomir.hop.ru/young_vosem_ukr.htm

http://foxtools.ru/ASCII#10017

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Серега, ты путаешь форум и обучающую площадку.  Здесь явно нихрена не она.  

MSerega
Offline
Зарегистрирован: 04.04.2020

DetSimen пишет:

Серега, ты путаешь форум и обучающую площадку.  Здесь явно нихрена не она.  

"Песочница. Раздел для новичков" я и пытаюсь разбираться, раз покажите второй раз про это не спрошу

b707
Offline
Зарегистрирован: 26.05.2017

Серега, я не знаю мовы. Сооответвуенно знать не знаю, где твоя буква в таблице. Либо у своих спрашивай. либо в поиске ищи. Могу только сказать, что например для русского есть как минимум десяток разных кодировок, то есть одни и те же буквы могут иметь разный код. Поэтому тебе нужно не просто найти код для буквы - а найти код именно той кодировки. которую ты будешь использовать

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

MSerega пишет:

я частично понимаю, у каждой буквы есть свой ASCII код, дальше пока остановился :(

Отнюдь.

Свой ASCII код есть только у цифр, знаков препинания (не всех) и символов латиницы. Кириллица в ASCII не входит и, соответственно, кодов не имеет.

Судя по виду таблицы, у Вас используется та же кодировка букв, что и в http://arduino.ru/forum/proekty/asoled-kompaktnaya-biblioteka-dlya-oled-displeya-128kh64-s-kirillitsei-utf-8

Там есть практически вся кириллица, не только украинская, но и беларусская, а также можно в принципе писать на любом из кириллических языков: болгарском, македонском, русинском, черногорском и т.д.
MSerega
Offline
Зарегистрирован: 04.04.2020

andriano пишет:

MSerega пишет:

я частично понимаю, у каждой буквы есть свой ASCII код, дальше пока остановился :(

Отнюдь.

Свой ASCII код есть только у цифр, знаков препинания (не всех) и символов латиницы. Кириллица в ASCII не входит и, соответственно, кодов не имеет.

Судя по виду таблицы, у Вас используется та же кодировка букв, что и в http://arduino.ru/forum/proekty/asoled-kompaktnaya-biblioteka-dlya-oled-displeya-128kh64-s-kirillitsei-utf-8

Там есть практически вся кириллица, не только украинская, но и беларусская, а также можно в принципе писать на любом из кириллических языков: болгарском, македонском, русинском, черногорском и т.д.

Большое спасибо! Один вы мне помогли и нормально ответили. Не отрицаю я самый что есть новичок.. но я пытаюсь что то разобрать...

Мне нужно просто добавить

0x7C, 0x04, 0x05, 0x04, 0x00,   //81    129   Ѓ   D0 83
0x00, 0x78, 0x0A, 0x09, 0x00,   //83    131   ѓ   D1 93
0x3E, 0x49, 0x49, 0x41, 0x22,   //AA    170   Є   D0 84
0x38, 0x54, 0x54, 0x44, 0x28,   //BA    186   є   D1 94
0x00, 0x41, 0x7F, 0x41, 0x00,   //B2    178   І   D0 86
0x00, 0x44, 0x7D, 0x40, 0x00,   //B3    179   і   D1 96
0x00, 0x45, 0x7C, 0x45, 0x00,   //AF    175   Ї   D0 87
0x00, 0x45, 0x7C, 0x41, 0x00,   //BF    191   ї   D1 97

Или еще какие то манипуляции провести?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

MSerega пишет:

Мне нужно просто добавить

0x7C, 0x04, 0x05, 0x04, 0x00,   //81    129   Ѓ   D0 83
0x00, 0x78, 0x0A, 0x09, 0x00,   //83    131   ѓ   D1 93
0x3E, 0x49, 0x49, 0x41, 0x22,   //AA    170   Є   D0 84
0x38, 0x54, 0x54, 0x44, 0x28,   //BA    186   є   D1 94
0x00, 0x41, 0x7F, 0x41, 0x00,   //B2    178   І   D0 86
0x00, 0x44, 0x7D, 0x40, 0x00,   //B3    179   і   D1 96
0x00, 0x45, 0x7C, 0x45, 0x00,   //AF    175   Ї   D0 87
0x00, 0x45, 0x7C, 0x41, 0x00,   //BF    191   ї   D1 97

Или еще какие то манипуляции провести?

Вообще-то Вам нужно не просто "добавить", а вставить эти строки в строго определенные места массива, которые зависят от используемой Вами кодировки. А дальше - как повезет: не все библиотеки переваривают старший бит в коде символа.

MSerega
Offline
Зарегистрирован: 04.04.2020

Могу ли я вас попросить мне помочь в этом деле? Розумеется не беслатно? Вот этот проект https://alexgyver.ru/gyverstring/

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

MSerega пишет:

Вот этот проект https://alexgyver.ru/gyverstring/

А по виду - вроде приличный человек, а тут такое...

MSerega
Offline
Зарегистрирован: 04.04.2020

andriano пишет:

MSerega пишет:

Мне нужно просто добавить

0x7C, 0x04, 0x05, 0x04, 0x00,   //81    129   Ѓ   D0 83
0x00, 0x78, 0x0A, 0x09, 0x00,   //83    131   ѓ   D1 93
0x3E, 0x49, 0x49, 0x41, 0x22,   //AA    170   Є   D0 84
0x38, 0x54, 0x54, 0x44, 0x28,   //BA    186   є   D1 94
0x00, 0x41, 0x7F, 0x41, 0x00,   //B2    178   І   D0 86
0x00, 0x44, 0x7D, 0x40, 0x00,   //B3    179   і   D1 96
0x00, 0x45, 0x7C, 0x45, 0x00,   //AF    175   Ї   D0 87
0x00, 0x45, 0x7C, 0x41, 0x00,   //BF    191   ї   D1 97

Или еще какие то манипуляции провести?

Вообще-то Вам нужно не просто "добавить", а вставить эти строки в строго определенные места массива, которые зависят от используемой Вами кодировки. А дальше - как повезет: не все библиотеки переваривают старший бит в коде символа.

Я так понял эта функция отвечает за вывод букв

// интерпретатор кода символа в массиве fontHEX (для Arduino IDE 1.8.* и выше)
uint8_t getFont(uint8_t font, uint8_t row) {
  font = font - '0' + 16;   // перевод код символа из таблицы ASCII в номер согласно нумерации массива
  if (font <= 90) return pgm_read_byte(&(fontHEX[font][row]));     // для английских букв и символов
  else if (font >= 112 && font <= 159) {    // для русских
    return pgm_read_byte(&(fontHEX[font - 17][row]));
  } else if (font >= 96 && font <= 111) {
    return pgm_read_byte(&(fontHEX[font + 47][row]));
  }
}

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

MSerega пишет:

Могу ли я вас попросить мне помочь в этом деле? Розумеется не беслатно? Вот этот проект https://alexgyver.ru/gyverstring/

Обратитесь лучше в раздел "Ищу исполнителя".

А вообще, Гайвера на этом форуме не любят: он талантливый блогер, но весьма неаккуратный программист, - обычно его код позволяет лишь снять видео, но не обеспечивает надежной работы устройства.

osmanovv
Offline
Зарегистрирован: 20.05.2022
b707
Offline
Зарегистрирован: 26.05.2017

Да этих редакторов уже не один десяток...