Нехватка памяти с библиотекой U8Glib

AKOTb
Offline
Зарегистрирован: 24.01.2017

Привет, друзья!

Встретился с проблемой нехвати памяти при использовании библиотеки U8glib, а точнее при добавлении большого шрифта. Пишу меню для своей самоделки, планировал сделать несколько экранов, а получается что уже первый экран занял 89 процентов памяти устройства

 

#include <U8glib.h>                                            // Подключаем библиотеку U8glib
U8GLIB_ST7920_128X64_1X u8g(10);                               // Создаём объект u8g для работы с дисплеем, указывая номер вывода CS для аппаратной шины SPI

void MainScreen() { 
  u8g.setColorIndex(1); // делаем курсор белого цвета
  u8g.setFont(rus5x8); 
  u8g.setPrintPos(7, 8); 
  u8g.print(F("ТРЕНИРОВКА"));
  u8g.setPrintPos(67, 8); 
  u8g.print(F("РЕАБИЛИТАЦИЯ"));
  u8g.setFont(u8g_font_osb35); 
  u8g.setPrintPos(15, 49); 
  u8g.print(F("T"));
  u8g.setPrintPos(79, 49); 
  u8g.print(F("P"));

  u8g.drawRFrame(5,10,54,45,10); // левый прямоугольник 
  u8g.drawRFrame(69,10,54,45,10); // правый прямоугольник
}

void setup(){}

void loop (){
  u8g.firstPage();  
  do {
    MainScreen();
      } 
   while( u8g.nextPage() );

Если убрать из кода строку u8g.setFont(u8g_font_osb35);, 

то программа сразу занимает 30 % памяти, а с этой строкой 89.

Можно ли как-то сэкономить память используя этот шрифт? Возможно что-нибудь посоветуете для экономии памяти?

Feofan
Offline
Зарегистрирован: 28.05.2017

В подобной ситуации делал "свой" шрифт нужного размера. Но требовались только некоторые символы и цифры.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

AKOTb пишет:

 Возможно что-нибудь посоветуете для экономии памяти?

Использовать другой контроллер. Это будет, поверь, правильное решение. Можно, конечно, найти более компактный шрифт, но это совершенно временное лечение.

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

wdrakula пишет:

Использовать другой контроллер.

опередил...

sadman41
Offline
Зарегистрирован: 19.10.2016

У этого углиба есть версия 2. Может она пооптимальней слегонца?

AKOTb
Offline
Зарегистрирован: 24.01.2017

Спасибо за ответы, вторую версию пробовал, сильных изменений не нашел.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Сам шрифт занимает 22097 байт памяти программ.

Если вы другие шрифты цеплять не будете, то в оставшееся место можно много чего вместить.

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

И еще одно замечание: шрифты с исключительно латиницей занимают гораздо меньше памяти, чем шрифты с кириллицей. Так что один из возможных вариантов - отказаться от кириллицы.