Память МК (флеш) забита впритык, пытаюсь оптимизировать. На дисплей библиотекой GyverOLED выводятся русские сообщения. Трабл в том, что в памяти МК русская буква хранится в UTF-8 если выводить через oled.print(F(“текст”)). Разбивать на символы не получается с F(“”).
-
пробовал определять строки как const char имястроки PROGMEM = {‘т’,‘е’,‘к’,‘с’,‘т’}; - тогда через .print этот const char вывести не могу. Приходится вводить буфер strcpy_P (буфер char, имястроки); и потом .print буфер. - занимает больше флеш чем при .print (F(“”)). компилятор вываливает warningи, но все-таки компилит и текст выводится норм…Символы действительно занимают ОДИН байт, пробовал заменять их на английские - тот же обьем.
-
пробовал сделать .print (F("\однобайтный код символа т\однобайтный код символа е .… ")). НО! не пойму как символы кодируются - подстановкой кодов не нашел большей части строчных русских букв (и часть кодов например 80…100DEC компилятор отрыгивает).
Подскажите пож как __Flash_Helperу скормить подобие {‘т’,‘е’,‘к’,‘с’,‘т’} - оно ж хранится по 1 байту и срабатывает через strcpy_P. Или какие еще варианты? для .print F(“\xxx.…”) не могу подобрать коды символов в диапазоне 0…255 для букв а,б…п. Остальное есть, разбросано хз как по таблице, но выводить можно.