Очистка экрана ITDB02-1.8SP 128x160 работает медленно

Immortal
Offline
Зарегистрирован: 28.12.2013

Купил экран 128x160 за 10 баксов: http://imall.iteadstudio.com/im120419001.html на контроллере DS_ST7735

Оказалось, что функция полной очистки экрана работает слишком медленно - выполняется аж 100мс.

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

Какие могут быть варианты оптимизировать вывод на экран?

Судя по исходным кодам библиотеки, функция очистки просто заполняет экран линиями черного цвета.

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

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

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

Попробуйте библиотеку от адафрут
https://github.com/adafruit/Adafruit-ST7735-Library

Immortal
Offline
Зарегистрирован: 28.12.2013

Ёё кстати и использую.

Похоже я понял в чем дело, я не менял скорось SPI, а по умолчанию это 4Мгц

Вечером попробую с SPI.setClockDivider(SPI_CLOCK_DIV2)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

http://arduino.ru/forum/obshchii/vremya-na-ispolnenie-raznykh-funktsii#c...

http://arduino.ru/forum/obshchii/vremya-na-ispolnenie-raznykh-funktsii#c...

мучал как то такой. там внутри библиотеки надо перелопачивать кроме делителя

вот либа переделланная. только подцепить еще библиотеку cyberlib
доп. пины 9 и 10. какой куда уже не помню. но проверить просто. точно работает
 
 
 
Immortal
Offline
Зарегистрирован: 28.12.2013

Спасибо, попробую вашу библиотеку.

А не пробовали предложить им принять ваши изменения на гитхабе?

У меня была мысль перепаять кварц на 20МГц, 328 мега вроде ёё поддерживает. Как думаете, этот экран заработает на 10МГц SPI ?

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

Immortal пишет:

Спасибо, попробую вашу библиотеку.

А не пробовалци предложить им принять ваши изменения на гитхабе?

У меня была мысль перепаять кварц на 20МГц, 328 мега вроде ёё поддерживает. Как думаете, этот экран заработает на 10МГц SPI ?

Для начала проверьте, какой используете spi, программный или софтварный

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я переделал либу там только хардварный. а насчет перепаять. там такой кварц непаябельный особо. хотя у меня самого мысль сделать отедльную плату (точнее уже сделал но руки никак не дойдут) с кварцем 30мгц

а предлагать на гитхабе не стал. сделал что мне нужно было, а там они сами знают что лучше

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

Immortal
Offline
Зарегистрирован: 28.12.2013

SPI конечно же хардварный.

Откуда брать библиотеку cyberlib ?

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

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
Immortal
Offline
Зарегистрирован: 28.12.2013

Спасибо jeka_tm, с ходу библиотеку запустить я не смог, прошлось изучить твои изменения и вернуть на место код для дергания ресета экрана. Теперь все заработало.

Скорость рисования стала 11мс, вместо 30мс. Теперь экран почти не мерцает, надо будет поиграться с задержками, чтобы еще меньше мерцал.

А не пробовали точно так же оптимизировать https://github.com/adafruit/Adafruit-GFX-Library ? Оттуда ведь наследуется часть кода.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

советую ресет убрать из кода и оставить как было у меня сделано, а ресет просто на +5в подключить. будет еще немного быстрее

а насчет 2 библиотеки. там практически только математика как то или иное рисовать. там особо править нечего. она использует ту что я вам давал для рисования и вывода текста. может как нибудь придется просмотреть ее. сейчас LCD NOKIA 1616  запустил на ардуине. графику чтобы не писать самому можно ее использовать

LCD NOKIA 1616 дешевый дисплейчик 1,8 дюйма цветной с управлением по SPI. вот только SPI программый, так как у дисплея нестандатный 9битный SPI. надо еще отработать несколько моментов и можно будет запустить на STM32. там пошустрее будет отрисовываться

кстати это дисплей еще и недорогой. сейчас 80 стоит. до этого 60-70 в профи

Immortal
Offline
Зарегистрирован: 28.12.2013

Хорошо, попробую посадить его на питание.

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

Полная очистка длится 70мс. Буду и дальше чистить только нужные мне участки.

DLS74
Offline
Зарегистрирован: 01.06.2019

Добрый день!

У меня точно такая же проблема с обновлением экрана. Нашел вашу ссылку на обновленную библиотеку, а ссылка уже не рабочая....

Помогите пожалуйста с этой библиотекой... как можно ее скачать?

С уважением Дмитрий.