Функция Print
- Войдите на сайт для отправки комментариев
Втр, 28/04/2020 - 11:44
Доброго времени суток Всем !
Хочется сделать часики на дисплее 128Х128 ST7735, но столкнулся с проблемой вывода на экран при
помощи функции print ?? Почему то выводимые цифры накладываются друг на друга и получается что они все вместе выводятся на экран при этом не стираются предыдущие?? Вот пример небольшого кода:
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7735.h> // Hardware-specific library #include <SPI.h> #include <Fonts/FreeSansBold9pt7b.h> #include <DS1307.h> DS1307 rtc(A4, A5); #define TFT_CS 10 #define TFT_RST 8 #define TFT_DC 9 Time t; Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); #define TFT_SCLK 13 // set these to be whatever pins you like! #define TFT_MOSI 11 // set these to be whatever pins you like! void setup(void) { rtc.halt(false); tft.initR(INITR_REDTAB); // initialize a ST7735S chip, black tab tft.fillScreen(ST7735_BLACK); tft.setRotation(1); tft.setFont(&FreeSansBold9pt7b); } void loop() { t = rtc.getTime(); tft.setCursor(15,50); tft.print(t.sec,DEC); delay(500); }
Кто подскажет что делаю не так ?? За ране СПАСИБО !!
Так Вы же сами себе всё и подсказали.
Так стирайте! Кто не даёт-то? Выводите сначала пробелы, а потом на то же место новые цифры, например.
Нестандартный шрифт выводится без фона.
Пробывал пробелами стирать тот же результат ?? Вот код:
Не пойму что не так ????
С стандартным шрифтом то же самое
Пробел это тоже фон ... Вместо него ничего не выводится - просто происходит сдвиг позиции.
Сдвиг не происходит потому как есть функция tft.setCursor(15,50);
Видимо в новых версиях решили и стандартный шрифт без фона выводить ...
Рисуйте закрашенный прямоугольник вместо текста, но будет моргать, если частый вывод будет.
Пробывал пробелами стирать тот же результат ?? Вот код:
Не пойму что не так ????
Так тебе не пробелы нужно ставить , а выводить старые значения , но цветом фона
Не пойму как но сейчас буду пробывать.
http://arduino.ru/forum/proekty/bortovoi-kompyuter-dlya-opel-zafira?page=36#comment-471039
Вот тут я выкладывал правленую библиотеку - с полной прорисовкой символов !
Почему то не работает функция tft.setTextColor(0x001F,0x07E0); цвет шрифта меняет а фон нет, хоть она и прописана в библиотеке Adafruit_GFX_Library
Без правок библиотека не трогает фон СОВСЕМ !!!
Без правок библиотека не трогает фон СОВСЕМ !!!
А фон то зачем трогать ?
Цвет шрифта менять достаточно
Kakmyc ТС спрашивает чего это setTextColor не меняет цвет фона. Он никак не поймёт что мы ему тут на пальцах объясняем ...
intom33 фон надо нарисовать заранее !
Поменял библиотеку Adafruit-GFX-Library-master на Adafruit_GFX_Library-1.7.5 с стандартным шрифтом работает все нормально и затирает предыдущие цифры но с сторонним шрифтом не работает, видно в других шрифтах нет фона.
Попробывал как вы посоветовали "А фон то зачем трогать ? Цвет шрифта менять достаточно" работает нормально но надо
вставлять delay(1000);
А бес delay моргает ((
Значит надо рисовать новый шрифт с фоном
А зачем секунды выводить иначе как раз в секунду ???
Я же дал ссылку на библиотеку, в которой я реализовал полный вывод символа (фон и сам символ). Там еще дальше почитайте несколько сообщений - там есть и про изменение под другой шрифт и под вывод затирающего пробела.
Полный шрифт с фоном занимает ГОРАЗДО больше места. Так же вывод и фона и символа отнимает очень много ресурсов у процессора.
Но с delay идет задержка по другим функциям, разве что секунды вызывать по каким то прерываниям например библиотекой MsTimer2
Достаточно просто периодически проверять тикнула секунда или нет. И только если тикнула, то обновлять информацию на дисплее.
Спасибо Всем наверно так и буду делать вызывать секунды по таймеру.
Может кто подскажет часики с этим дисплеем но с выводом цифр а не циферблата