Adafruit библиотека для работы с oled дисплеем

MacSim
Offline
Зарегистрирован: 28.11.2012

http://arduino-project.net/oled-l2c-arduino-uno/

Взял две библиотеки для работы с олед дисплеем. Подключил, работает нормально. примеры работают. поковырялся, разобрался.... но не во всем.

При старте примеров возникает заставка adafruit. не разобрался где она прорисовывается. видимо при инициализации дисплея в бегине (могу ошибаться).

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

Так вот вопрос где зарыт вывод этой заставки??? Хотелось бы разобраться с библой а не тупо ее юзать.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

я убрал из библиотеки (одой из них) логотип. по быстрому не могу найти, что именно делал.

помню, что лого было навиду - просто убрал функцию, выводившую его.

arduinec
Offline
Зарегистрирован: 01.09.2015

Мне заставка тоже мешала, но в саму библиотеку не полез, а просто отключил её вывод.

  display.begin(SSD1306_SWITCHCAPVCC);
//  display.display();
//  delay(2000);
  display.clearDisplay();

Сама заставка ест немного ресурсов при её выводе, но основную память потребляет буфер для дисплея, который нужен для отображения графики.

MacSim
Offline
Зарегистрирован: 28.11.2012

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

arduinec
Offline
Зарегистрирован: 01.09.2015

MacSim пишет:

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

Я убрал и вывод и задержку.

В библиотеке Adafruit создается буфер для вывода на дисплей. При этом туда сразу же помещается заставка Adafruit. Командой display() эта заставка выводится, а затем командой clearDisplay() стирается.

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

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

  display.clearDisplay();

Перед первым

  display.display();

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

None
Offline
Зарегистрирован: 15.01.2016

Лично я очистил заранее заданное изображение в буфере нулями, в файле Adafruit_SSD1306.cpp.

SunX пишет:

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

А какую библиотеку вы используете? И можно ли там пользовать руский на экране 128х32.