Устранить мерцание статических надписей lcd 1.8 spi arduino 1.0.5 при считывании температуры с lm75
- Войдите на сайт для отправки комментариев
Пт, 20/11/2015 - 12:58
Не могу сообразить как сделать так чтобы статические надписи не мерцали при обновлении экрана, если убрать обновление экрана то показания температуры накладываются друг на друга, поэтому приходится при каждом цикле обновлять экран, соответственно весь экран моргает.
#include <TFT.h> // Arduino LCD library #include <SPI.h> #include <Wire.h> int temp_address = 72; #define cs 10 #define dc 9 #define rst 8 TFT TFTscreen = TFT(cs, dc, rst); void setup() { Serial.begin(9600); Wire.begin(); TFTscreen.begin(); } void loop() { TFTscreen.background(0, 0, 0); TFTscreen.stroke(255,255,255); TFTscreen.setTextSize(1); TFTscreen.text("Read Temp From LM75 ",0,0); TFTscreen.setTextSize(2); TFTscreen.stroke(255,255,255); TFTscreen.text("temp=:", 0, 20); Wire.beginTransmission(temp_address); //Start talking Wire.write(0); //Ask for Register zero Wire.endTransmission(); //Complete Transmission Wire.requestFrom(temp_address, 2); //Request 2 Byte while(Wire.available() == 0); //wait for response int c = Wire.read(); Serial.print(c); Serial.println("C"); TFTscreen.print(c); delay(5000); }
Как вариант выводить сначало квадрат с заливкой фона, а потом результат.
Типа так:
tft.fillRect(0, 100, 144, 25, BLACK) - координаты подобрать свои
Мне кажется, ТС спрашивал, как уменьшаить мерцание, а не как его увеличить.
А для уменьшения принцип простой - не выводить ничего лишнего.
Весь статический текст выводится в setup, а в loop - только то, что изменяется.
Символы, естественно, выводить с непрозрачным фоном и ведущими пробелами.
Как вывести символ с непрозрачным фоном?
По-разному можно.
Обычно в библиотеке для этого есть специальная функция или режим.
Ну а если нет - дописать свою.
А если дописать свою не по силам - сначала рисуем на месте символа прямоугольник цветом фона, а потом поверх него - символ.
Почитал про это дело... В общем для стандартного шрифта (по умолчанию для дисплея) можно указать цвет фона символов вторым аргументов цвета текста, например:
А вот для любого другого шрифта (хотя они лежат внутри библиотеки) так не работает и фон не рисуется... А отрисовка прямоугольника или вывод того же текста, но в цвет фона - вызывает мерцание...
Попробую найти как это работает в библиотеке для стандартного шрифта и переделать под любой...
Просто не переделаете. Авторы либы не просто так оставили фонты без фона. Это не так то просто.
Кстати, вывод фонта с фоном и прорисовка прямоугольника под текст - в смысле мерцания одно и тоже, так что не плодите сложностей, делайте как проще.
Вот тут http://arduino.ru/forum/proekty/bortovoi-kompyuter-dlya-opel-zafira решили подобный вопрос.