Adafruit_ILI9341 плавная смена значений

next-999
Offline
Зарегистрирован: 30.09.2013

Всем привет. 

Есть функция температуры, на экране значение мерцает, сделал обновления части дисплея с помощью функции  tft.fillRect  значение с верху в низ обновляется мерцанием. если функцию убрать то значение друг на друга накладываются.

 подскажите пожалуйста, как сделать плавную смену значений? 

 

  tft.fillRect(70, 30, 100, 50, 0x0000);
          tft.setTextColor(ILI9341_WHITE);
          (float(Thermister(analogRead(1))), 1);  
          tft.setTextSize(2);
          tft.setCursor(80, 30);
          tft.print(t);
          

 

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

пере выводом нового значения печатайте туда строчку из пробелов

bwn
Offline
Зарегистрирован: 25.08.2014

А пока не изменилось, ваще ничего не печатайте.

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

Не-не, строчка из пробелов не поможет, да и наверняка задержка там есть какая перед измерением и выводом. Я делал поделие, вайфай-часики на esp8266 и ili9341, шрифт большой, экран большой для мк, надо передать в худшем случае 320*240*2 байт+служебка, мерцает, зараза, какие техники ни применяй. Решил с помощью костыля - запитал подсветку экрана от шим, перед обновлением экрана циклом декремента гашу подсветку до 0, рисую, инкрементом возвращаю обратно. Получился спецэффект - за 0.13 сек диммимся, рисуем еще секунд 0.1-0.2, и 0.13 сек возвращаем яркость обратно - выходит вполне красиво :)

  for (int i = LED_BRIGHTNESS; i >= 0; i--)
  {
    analogWrite(LEDPWM_PIN, i);
    delay(1);
  }

  // updateTft();

  for (int i = 0; i <= LED_BRIGHTNESS; i++)
  {
    analogWrite(LEDPWM_PIN, i);
    delay(1);
  }

 

next-999
Offline
Зарегистрирован: 30.09.2013

negavoid пишет:

Не-не, строчка из пробелов не поможет, да и наверняка задержка там есть какая перед измерением и выводом. Я делал поделие, вайфай-часики на esp8266 и ili9341, шрифт большой, экран большой для мк, надо передать в худшем случае 320*240*2 байт+служебка, мерцает, зараза, какие техники ни применяй. Решил с помощью костыля - запитал подсветку экрана от шим, перед обновлением экрана циклом декремента гашу подсветку до 0, рисую, инкрементом возвращаю обратно. Получился спецэффект - за 0.13 сек диммимся, рисуем еще секунд 0.1-0.2, и 0.13 сек возвращаем яркость обратно - выходит вполне красиво :)

  for (int i = LED_BRIGHTNESS; i >= 0; i--)
  {
    analogWrite(LEDPWM_PIN, i);
    delay(1);
  }

  // updateTft();

  for (int i = 0; i <= LED_BRIGHTNESS; i++)
  {
    analogWrite(LEDPWM_PIN, i);
    delay(1);
  }

 

Может stm32 спасет???

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

next-999 пишет:
Может stm32 спасет???

Не знаю, не пробовал.