Adafruit_TFTLCD и tft.setFont не стирает старые символы
- Войдите на сайт для отправки комментариев
Вс, 18/12/2016 - 13:48
Adafruit_TFTLCD (Adafruit_GFX), сли сменить шрифт tft.setFont, то tft.print при выводе не стирает старые символы:
while (true) {
if (oldsec != t.sec) {
tft.setFont(FONT1); tft.setTextSize(2);
tft.setTextColor(TFT_WHITE, TFT_BLACK); tft.setCursor( 0, 0);
tft.print(rtc.getTimeStr());
oldsec = t.sec;
} }
Если tft.setFont() по умолчанию, то стирает.
Библиотека так работает, или я где-то ошибся?
Весь код (LCD chip9328):
/* tft.setFont tft.setTextColor */ #include <Adafruit_TFTLCD.h> #include <DS3231.h> #include <fonts/FreeSerif9pt7b.h> #define FONT1 &FreeSerif9pt7b #define TFT_BLACK 0x0000 #define TFT_WHITE 0xFFFF Adafruit_TFTLCD tft(A3, A2, A1, A0, 0); DS3231 rtc(SDA, SCL); Time t; int oldsec = 0; void setup() { Serial.begin(9600); rtc.begin(); tft.reset(); tft.begin(tft.readID()); tft.fillScreen(TFT_BLACK); } void loop() { t = rtc.getTime(); while (true) { if (oldsec != t.sec) { tft.setFont(FONT1); tft.setTextSize(2); tft.setTextColor(TFT_WHITE, TFT_BLACK); tft.setCursor( 50, tft.width() / 2); tft.print(rtc.getTimeStr()); tft.setFont(); tft.setCursor( 70, tft.width() / 2 + 25); tft.print(rtc.getTimeStr()); Serial.print(oldsec); Serial.print(" "); Serial.println(rtc.getTimeStr()); } oldsec = t.sec; delay(250); t = rtc.getTime(); } }Библиотека так работает.
http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...
за getTextBounds спасибо, не знал