В первом видео free mem свободная рам. Сам скетч занимает 14к, но в нем еще родные растровые шрифты остались. Под первым видео ссылка на форум где жуем это дело.
Недобиблиотека VF Пользоваться так Код (C++): #include <Adafruit_GFX.h>//библиотеки OLED #include <Adafruit_SSD1306.h>//библиотеки OLED #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); #include <VF.h>//векторный шрифт void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); } void loop() { setCursorVF(0, 0);//позиция по умолчанию 0,0 //можно так setSizeVF(15);//размер текста в пикселях по у (высота символа) printVFln("Hello World"); setSizeVF(11, 10);//размер символа в пикселях по х и у printVFln("Hello World"); bold = 1;//толстый вкл setSizeVF(12);//размер текста в пикселях по у printVFln("Hello World"); bold = 0;//толстый выкл italic = 1;//курсив вкл setSizeVF(13);//размер текста в пикселях по у printVFln("Hello World"); italic = 0;//курсив выкл display.display(); delay(250); display.clearDisplay(); } Еще один тест VF Код (C++): #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); #include <VF.h>//векторный шрифт void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); } void loop() { byte x = 1; while (x != 18) { setCursorVF(0, 24);//позиция display.clearDisplay(); setSizeVF(x, 15);//размер символа в пикселях по х и у printVF("VF Test"); display.display(); //delay(250); x = x + 1; } delay(1000); x = 1; bold = 1;//толстый while (x != 15) { setCursorVF(40, 24);//позиция display.clearDisplay(); setSizeVF(8, x);//размер символа в пикселях по х и у printVF("Bold"); display.display(); //delay(250); x = x + 1; } bold = 0;//толстый delay(1000); x = 1; italic = 1;//курсив while (x != 15) { setCursorVF(30, 24);//позиция display.clearDisplay(); setSizeVF(8, x);//размер символа в пикселях по х и у printVF("Italic"); display.display(); //delay(250); x = x + 1; } italic = 0;//курсив display.display(); delay(2000); display.clearDisplay(); } Если подряд вкл Bold & Italic соответственно получим толстый курсив. Вектор VS растр
Зависит от масштаба шрифта. Bold два раза прорисовывается. В среднем полный экран гдето до 30мс. Кирилицы Кока нет, работаю.
Для прорисовки используются функции библиотеки Adafruit-GFX в ней двойной точки нет, поэтому прорисовывается линией смещенной, в два прохода, но во втором проходе горизонтальные линии не прорисовываются.
Библиотеки нужны чтобы на разные экраны выводить (для совместимости). Если отказаться от библиотеки то под каждый экран придется адаптировать. Сам думал об этом. Оставить минимум чтобы память не жрало.
Сидел разбирался, всеровно придется городить буфер для вывода, как минимум размером с символ, писать функцию растеризации линии, ну и соответственно выводить из буфера как битмап. Буду пробовать.