Мерцание TFT LCD SPI 1.44'' 128x128
- Войдите на сайт для отправки комментариев
Чт, 03/03/2016 - 13:52
Всем добрый день.
Кто сталкивался с такой проблемой!!!
Экран TFT LCD 1.44'' 128x128 V2.1, библиотека Adafruit_GFX, драйвер TFT_ILI9163C. Тип МК Arduino Uno R3. Тактовая частота МК 16Мг.
Чтобы обновить показания канала АЦП на экране , нужно сначало стереть старое число , а потом записать новое на его место. Так вот происходить мерцание выводимых символов. Не пойму в чем дело.
Но меня гложет смутное сомение , что не тянет сам TFT ?.
Поиск в ерхнем правом углу. Читать устанете, сколько тёрли
Написано не много , толкового нет.
А вот если мозги поднапряч то ларчик просто открывается:
Написано не много , толкового нет.
если что-то хочешь сделать надо это делать самому.
Полностью согласен.
Доброй ночи. А может кто второй пост разжевать. Я вот совсем новичёк в программировании, решил заняться этим, на 4 десятке. Экран у меня 7735. Выводит время с 1302. Время, дата, день. Обновление каждую секунду, старые показания закрашиваю прямоуголником. Пока учусь выводить время, даётся туго, ну совсем туго. Половину кода не понимаю, но пытаюсь, упорно. Мерцания секундные надоели, появилось огромное желание от них избавиться. Додумался что надо обновлять только те символы, которые меняются, а вот как это сделать... ну совсем даже не знаю с чего начать.
... ну совсем даже не знаю с чего начать.
Поискать, как решали другие. Для примера в тынц.
Eugen_S, не нужно постоянно очищать область экрана через tft.fillRect, из-за этого и мерцание; лучше задать цвет фона шрифта (чёрный) и выводить всегда одинаковое количество символов (чтобы новые затирали старые, с учётом фона). Первый параметр метода setTextColor задаёт цвет текста, второй - цвет фона.
Ещё, tft.setTextSize(1) постоянно вызывать перед каждым выводом текста не надо, достаточно всего один раз, можно даже внутри setup(), если не предполагаете выводить разные размеры шрифта.
Вот, как раз слева, у меня на аватарке, дисплей на ST7735, тексты выводятся именно таким способом, никакого мерцания нет и в помине.
Принял. Щас попробую
... ну совсем даже не знаю с чего начать.
Поискать, как решали другие. Для примера в тынц.
Этот документ я уже прочитал. И поверьте нихрена не понял. До этого уровня мне ещё далеко. Поэтому, если можно подскажите что попроще. Как я и говорил, в программировании я вообще с самого нуля только начинаю. И мозг у меня уже неожиданно туго всё воспринимает.
Вот, как раз слева, у меня на аватарке, дисплей на ST7735, тексты выводятся именно таким способом, никакого мерцания нет и в помине.
При использовании моноширинных шрифтов(фонтов) - такие да.
А если шрифте знаки разной ширины и изменяем кол-ве знакомест при выводе на экран?
Мне, к примеру, не нравится шрифт, где точка, запятая, пробел и тп.,занимают столько же места, как и цифра 8.
Места и так не много на экране 240х320.
А про русские "Ж, Ш, Щ" - отдельная речь. :-)
Eugen_S, не нужно постоянно очищать область экрана через tft.fillRect, из-за этого и мерцание; лучше задать цвет фона шрифта (чёрный) и выводить всегда одинаковое количество символов (чтобы новые затирали старые, с учётом фона). Первый параметр метода setTextColor задаёт цвет текста, второй - цвет фона.
Ещё, tft.setTextSize(1) постоянно вызывать перед каждым выводом текста не надо, достаточно всего один раз, можно даже внутри setup(), если не предполагаете выводить разные размеры шрифта.
Вот, как раз слева, у меня на аватарке, дисплей на ST7735, тексты выводятся именно таким способом, никакого мерцания нет и в помине.
Ух ты, как красиво заработало. Спасибо огромное. Идём дальше )))
Ещё один момент. У меня в углу в нижнем левом светится один пиксель. Я этому пикселю светиться никаких команд не давал, почему так происходит?
Ну вот и приехали. Убил ардуину ещё раз.
Как это получилось. Был залит скетч, который я выложил выше. У меня всё припаяно, 1302, 7735 через резисторы.
Далле ничего не отпаивая я заливаю вот такой скетч
Всё. Ардуинка USB не определяется, компьютер на неё вообще никак не реагирует. Уже вторая сдохла (.
di_mot ну, рассчитывайте размеры через getTextBounds, закрашивайте :) Я не перфекционист, мне и курьер сойдёт, время==мани :)
Да и Eugen_S, полагаю, пока что не до тонкостей. Кстати, этот дисплей всего 128*160.
Ещё один момент. У меня в углу в нижнем левом светится один пиксель. Я этому пикселю светиться никаких команд не давал, почему так происходит?
Судя по вашему скетчу - вроде не давали, не знаю :)
Всё. Ардуинка USB не определяется, компьютер на неё вообще никак не реагирует. Уже вторая сдохла (.
Так заливать опасно, да и мы же не знаем вашей схемы, надо всегда думать, что и как заливать даже при простом изменении схемы, и аккуратно включать ардуину из старой схемы в новую, а то предыдущий скетч запросто может коротнуть или подать что-нибудь не туда. Я для себя решил это заливкой скетча блинка перед каждой разборкой макета, зато я точно знаю, что при включении в новую схему на ногах уровней не будет.
Arduino Pro Micro.
Из скетча видно, что TFT сидит на 10 и 18 порту, всё остальное по распину, CLK - 15, MOSI - 16, RST - на RST. Время (1302) сидит на 7, 8, 9.
Управление шаговым двигателем сидело на 6, 7, 8, 9.
Получается мне шаговый скетч выдал серию импульсов в микруху часов 1302, а именно в пины CLK, DAT и RST. Блин... взял последнюю, запасную плату, новую, рабочу, всё перепаял.... и нихрена не заработало, то ли часы подохли, то ли мне спать уже надо ))). Итог вечера: допиленный скетч и две сгоревших платы )))). Снова дорога на Али.
Прозвонил ноги у 1302. Горелостей не обнаружил, по пинам замыканий нет, всё чисто, чего же случилось???
di_mot ну, рассчитывайте размеры через getTextBounds, закрашивайте :) Я не перфекционист, мне и курьер сойдёт, время==мани :)
- Па-сип!
Не за зря я встрял в топик. :-)
Хотя в той либе, которую использую, именно такой функции нет, но направление вкурил, нарыл в Keywords.txt аналогчное и уже закодил. :-)
Господа, у меня три платы, и компьютер пишет Arduino Leonardo Bootloader (com14) при замыкании RST и GND, если держать замкнутыми, то этот бутлоадер пропадает, если перемкнуть и отпустить, то в ком портах сиди буквально секунды три, потом пропадает. Куда дальше копать? Кто подскажет
Добил. Все три Pro Micro оживил. С 1 Сентября всех!