Проблема с 1.8 TFT SPI 128*160 V1.1 !!!!!

Jhn13
Jhn13 аватар
Offline
Зарегистрирован: 04.03.2016

Добрый день!

При выводе параметров с датчиков(с любых) на экран 1.8 spi 128*160 TFT , символы накладываются друг на друга и получается каша!

Перепробовал все, что нашел, библиотеки к данному экрану (Adafruit_GFX, Ucglib, UTFT и дт). Везде одинаковый результат.

Из-за чего это может быть???

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Стирать надо место, куда выводишь сначала, потом выводить

Jhn13
Jhn13 аватар
Offline
Зарегистрирован: 04.03.2016

Jhn13 пишет:

Добрый день!

При выводе параметров с датчиков(с любых) на экран 1.8 spi 128*160 TFT , символы накладываются друг на друга и получается каша!

Перепробовал все, что нашел, библиотеки к данному экрану (Adafruit_GFX, Ucglib, UTFT и дт). Везде одинаковый результат.

Из-за чего это может быть???

 

Jhn13
Jhn13 аватар
Offline
Зарегистрирован: 04.03.2016

DetSimen пишет:

Стирать надо место, куда выводишь сначала, потом выводить

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

negavoid
Offline
Зарегистрирован: 09.07.2016

Сначала стирался, потом обновлялся новым символом.

Jhn13
Jhn13 аватар
Offline
Зарегистрирован: 04.03.2016

А для этого какая-то универсальная команда? 

Я просто ни в одной библиотеке ничего подобного не нашел, только обновление всего экрана

negavoid
Offline
Зарегистрирован: 09.07.2016

В каждой библиотеке по-разному.

Если шрифт моноширинный, то можно выводить сперва нужное количество пробелов по заданным координатам, а потом уже вывод своего текста по тем же координатам. Вывод пробелов может затереть цветом фона старые символы, а может и не затереть. Другой подход более универсальный - сперва закрашиваем цветом фона область вывода текста, обычно функция называется fillRect(), потом выводим новый текст. Если совсем лениво - можно каждый раз перед новым обновлением просто очищать весь экран, clrScr(), но это будет работать медленно и визуально некрасиво.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Сходу чтото не могу найти нормальное решение. Все же кто-нибудь нашел нормальный способ затирания старых символов? через fillRect сильно мигает, через фоновый цвет Background только со стандартным стрёмным квадратным шрифтом работает.  Экран у меня MCUFriend 2.4. Работает только с библиотеками  MCUFRIEND_kbv.h или UTFTGLUE.h . Если маленький размер текста, затирание fillRect ещё можно терпеть, то большой текст не вариант затирать черным прямоугольником. 

Кто в теме , если есть решение киньте ссылку, пасиб. 

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

MaksVV пишет:

Кто в теме , если есть решение киньте ссылку, пасиб. 

Макс, единого решения нет, особенность вывода на ТФТ. Почему так - я летом обьяснял в вашей теме "трип-комп на Опель Зефира". Тогда Командир взялся переписывать библиотеку. чтобы добавить фон к кастомным шрифтам. Чем там кончилось - я не в курсе. уехал в отпуск, а потом как-то больше не заходил в тему...

MaksVV
Offline
Зарегистрирован: 06.08.2015

Чето там у них в итоге не попёрло. Короче мне в основном цифры выводить. Попробую разбивать число на разряды, и выводить только ту цифру, которая меняется (предварительно закрасив черным прямоугольником ), так глазу гораздо приятнее т.к. в этом случае статические цифры мигать не будут. Но то ещё извращение. 

Кстати в теме про опель у ТСа же сначала какой-то экран был, он нормально делал затирание на стороннем шрифте функцией printNumI и printNumF. (описаниеТам можно было даже выбрать символы затирания, пробелы или нули например. Причем работало очень адекватно и быстро. Библа использовалась UTFT.h. C моим экраном не работает она никак. Потом у ТСа экран сдох, с китая другой пришёл, UTFT тоже не подошла к нему и начались танцы с бубном. 

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

MaksVV пишет:

Попробую разбивать число на разряды, и выводить только ту цифру, которая меняется (предварительно закрасив черным прямоугольником ), так глазу гораздо приятнее т.к. в этом случае статические цифры мигать не будут. Но то ещё извращение.

да, в заказном проекте ампер-вольтметра я так и делал

Цитата:
Кстати в теме про опель у ТСа же сначала какой-то экран был, он нормально делал затирание на стороннем шрифте функцией printNumI и printNumF. (описаниеТам можно было даже выбрать символы затирания, пробелы или нули например.

честно говоря, я не очень верю в то, что там работало у ТС. И ты понимаешь, почему :)

Когда Командир начал разбираться - ТС тоже писал, что у него на кастомных шрифтах затирание работает, а потом выяснилось. что ТС подключает кастомный фонт, а выводит на экран стандартным. Может и на старой либе тоже самое было.

Если нет - то тогда как вариант можно посмотреть в той либе, как устроены эти функции - и переснести их в новую.

MaksVV
Offline
Зарегистрирован: 06.08.2015

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