Comments 11
До чего все таки упал профссианализм прогеров последнее время! Описывать эту фигню как какое то достижение.. подобные библиотеки я писал еще много лет назад, в свободном доступе и правда нормальных библиотек нет, но подход тут несколько другой. Все библитеки которые есть в открытом доступе кривые ,они жрут много памяти, ради одного пикселя перересовывают весь экран, перерисовывают чаще чем надо итд. Есть lvgl но он для сложной графики и ичасто избыточен. И так - общий принцип всех этих дисплеев- они умеет перерисовыаать произвольный квадрат. Поэтому библиотека должна быть устроена так- есть массив номеров символов и их атрибутов( цвет, координаты, яркость итд) и шрифт который представляет из себя битовый массив. Например если знак 8×8 пикселей то это 64 бита. Есть специальный софт для генирации таких массивов из любого компьютерного шрифта. Пользователь может произвольно печатать любые символы хоть тысячу раз в сек, это приводит только к изменению пары байт в массиве. А 30 раз в секунду поток пробегает массив, и перерисовывает на экране только те квадратики которые изменились. Низкоуровневое апи у всех этих дисплеев не сложное, обычно есть несколько команд установки квадрата , управления яркостью, ориентацией итд. Некоторые чипы умеют аппаратно скролить изображение итд. Но для вывода текста все это не нужно.
Как раз и хотел написать что есть спец софт, который генерит для этого дисплея(ssd1306), ищите по этому слову, именно такую процедуру кода из шрифта заданного размера и типа. А также и картинки :) занимался этим лет 8 назад.
Делал русские шрифты для Спектрума задолго до всего этого вашего. Тогда приходилось стараться по максимуму переиспользовать английские символы схожего начертания и жертвовать несколькими редко используемыми символами типа @, заменяя их на кириллические, аналога которых в латинском нет. 256 знакомест в результате хватало на все, и на русские сообщения, и на английские.
POKE 23606...
POKE 23607...
Два числа, которые теперь невозможно забыть.
256 кодов хватало на всё без танцев с бубном (КОИ8, CP866 и т.п.)
А проблема с кириллицей у спектрума была в том, что стандартными средствами выводилось только первая половина ASCII. Поэтому некоторые меняли строчную латиницу на прописную кириллицу, кто-то использовал UDG, но UDG не хватало и начинались танцы...
Вся загвоздка в том, что Espruino не поддерживает кириллические символы в юникоде (например, «А», «Б»), поскольку Espruino работает с 8-битными строками и использует кодировку, совместимую только с латиницей и символами в пределах диапазона от 0 до 255.
Простите, я что-то не понял. Этот латинский шрифт жестко забит в прошивку дисплея или как? Может я чего-то не понимаю, но раньше обходились этими 255 знаками и есть масса кодировок национальных типа KOI8-R или Win1251.
Как я научил Espruino на ESP-32 понимать кириллицу