roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 17:27

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: обновление данных на экране
СообщениеДобавлено: 02 апр 2018, 17:53 
Не в сети
Аватара пользователя

Зарегистрирован: 30 окт 2015, 19:08
Сообщения: 185
привет!
подскажите пожалуйста как реализуют вывод инфы на экран без мерцания? экран олеэд128х64, контроллер ESP8265;
написал код, все переменные формируют 7 строк, затем эти строки выводятся на экран. так вот, если перед выводом не очистить экран, то остаются артефакты, а если очищать - то экран напряжно мигает, как в этом случае поступить, чтобы данные обновлялись, но экран не мигал, может какая-то другая библиотека, или я что-то не правильно делаю?
заранее спасибо.

Код:
...
#include "OLED.h"
OLED display(D2, D1);
unsigned long previousMillis = 0;
const long interval = 3000;

void setup() {
  display.begin();
  ...
}

void loop() {
  ...
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    display.clear();
    display.print(const_cast<char*>(text1), 1);
    display.print(const_cast<char*>(text2), 2);
    display.print(const_cast<char*>(text3), 3);
  }
}

_________________
Мой кубик


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 02 апр 2018, 20:32 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
формировать строку на всю длину экрана...

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 02 апр 2018, 23:26 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
А какой дисплей конкретно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 03 апр 2018, 14:08 
Не в сети
Аватара пользователя

Зарегистрирован: 30 окт 2015, 19:08
Сообщения: 185
Дисплей вот такой
https://ru.aliexpress.com/item/Wholesale-0-96-inch-4pin-White-OLED-Module-SSD1306-Drive-IC-128-64-I2C-IIC-Communication/32658908775.html?s=p&ws_ab_test=searchweb0_0,searchweb201602_2_10152_10151_10065_10344_10068_5722815_10342_10343_10340_5722915_10341_5722615_10697_10696_10084_10083_10618_10307_5722715_10059_10534_308_100031_10103_441_10624_10623_10622_5722515_10621_10620,searchweb201603_19,ppcSwitch_5&algo_expid=9dd58957-5271-490e-bc83-f3e9472edd63-1&algo_pvid=9dd58957-5271-490e-bc83-f3e9472edd63&transAbTest=ae803_1&priceBeautifyAB=0

_________________
Мой кубик


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 03 апр 2018, 17:16 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
я очищал место куда буду писать предварительным затиранием текстом нужной длины и потом уже писал новый текст
тока там была заморочка с фоном, по умолчанию там вроде печатается текст с прозрачным фоном и пробелы не затирали символ, надо было задать цвет фона и цвет букв
а в каком-то дисплее я печатал символ полный блок U+2588

если у тебя текст поверх рисунка, то придутся всё перерисовывать.
если чисто текст печатать, без рисования, то есть отдельная библиотечка чисто текстовая SSD1306Ascii

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 04 апр 2018, 22:01 
Не в сети
Аватара пользователя

Зарегистрирован: 24 окт 2011, 23:32
Сообщения: 803
Откуда: Севастополь
прог. языки: асм
Злой ОФФ.
А еще я, кажется, понимаю, почему оно летает у одних и безбожно тормозит и бажит - у других.
Потому, что вот это унылое добро
Цитата:
?=p&ws_ab_test=searchweb0_0,searchweb201602_2_10152_10151_10065_10344_10068_5722815_10342_10343_10340_5722915_10
341_5722615_10697_10696_10084_10083_10618_10307_5722715_10059_10534_308_100031_10103_441_10624_10623_10622_5722515_10621_10620,
searchweb201603_19,ppcSwitch_5&algo_expid=9dd58957-5271-490e-bc83-f3e9472edd63-1&algo_pvid=9dd58957-5271-490e-bc83-f3e9472edd63&transAbTest=ae803_1&priceBeautifyAB=0

к собственно ссылке на девайс никакого отношения не имеет. Но 80% современных программеров этих-ваших-ардуин почему-то считает, что оно не мешает, глаза мозолить не будет, а место на форуме (как и память в атмегах) - резиновое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 04 апр 2018, 22:26 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2681
Откуда: Где-то в Латинской Америке
Попробуйте другую библиотеку. Adafruit_SSD1306 например. Сам не пробовал, но подозреваю, что приличная библиотека сначала полностью формирует страницу в памяти, потом отображает ее разом display.display();

Добавлено спустя 1 минуту 40 секунд:
ALS писал(а):
Злой ОФФ.

согласен


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 16 апр 2018, 23:17 
Не в сети
Аватара пользователя

Зарегистрирован: 30 окт 2015, 19:08
Сообщения: 185
нашел подхлдящую билиотеку! :) ее плюс в том что не надо каждый раз зачищать дисплей, она сама обновляет ту область экрана которая будет задействованна в выводе строки, второй плюс - она очень экономно использует динамическую память - U8glib
https://github.com/olikraus/u8glib

_________________
Мой кубик


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: обновление данных на экране
СообщениеДобавлено: 17 апр 2018, 16:21 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
предупреждение!
экранчик ST7920 не поддерживается в u8glib, в u8g2 такого ограничения уже нет


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO