- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день.
Есть программа которая работает в цикле и получает данные с датчиков погоды.
Все нормально работает. Но если забрасываю код в блок IF тогда данные не обновляются.
Но дело в том что я делаю навигацию на сенсорном экране, и мне нужно чтоб данные обновлялись
без перезагрузки всего экрана.
Для примера приведу код.
int i = 0;
void couinter(){i++;}
void DhtSensor() {
//Датчик температуры и влажности
Внутри функции идет опрос датчиков, и информация выводится на экран.
}
return; Обновляет весь экран, но так не подходит.
Возможно ли обновлять функцию DhtSensor(); внутри условного оператора IF?
Либо может есть вариант сделать по другому. Спасибо.
Может в закрывающей скобке дело?
{
if (page ==0 && buttonEnabled == true) {
DhtSensor();// Работает нем не обновляет значения
}
if (page ==0) {page =1; }
}
Может в закрывающей скобке дело?
Делал так
void loop() //Сам цикл крутится постоянно.
{
if (page ==0 && buttonEnabled == true) {
DhtSensor();// Работает не не обновляет значения
}
увы не работает.
Проблема в том что условие IF выполняется только один раз,
если оно будет работать постоянно то будут постоянные обновления.
Мне же необходимо как то обновлять только функцию DhtSensor();
если добавить return; то работать будет,
но будет обновлять весь экран мигая в цикле.
Вот сижу и думаю как лучше реализовать навигацию по разделам меню.
Меню реализовал но на обычных условных переходах IF.
есть еще вариант использовать swich.
А еще лучше Конечные автоматы, но моих знаний видимо пока еще не достаточно для этого.
Пусть цикл постоянно дергает функцию и присваивает нужные значения промежуточной переменной, затем по событию считывете переменную и используете значение по надобности, затем обнуляете переменную.
Вообще сложно понять из Ваших объяснений...
Пусть цикл постоянно дергает функцию и присваивает нужные значения промежуточной переменной, затем по событию считывете переменную и используете значение по надобности, затем обнуляете переменную.
Вообще сложно понять из Ваших объяснений...
Есть код, его задача листать меню.
каждое нажатие МЕНЮ листает блоки IF с первого и до бесконечности. Ну пусть будет с 1 по 4.
Цикл крутится без остановки
void loop()
{ }
void loop()
{
//Жмем кнопку меню и попадаем в блок page ==0
if (page ==0 && buttonEnabled == true) { // if you are on the "home" page (0)
buttonEnabled = false;
tft.fillScreen(BLACK);
tft.setCursor(100,190);
tft.print("home");
if (page ==0) {page =1;
//Ловушка в цикле не дает перепрыгивать между страниц без повторного нажатия меню, после нажатия
//Она же не дает обновить значения датчика так как блок блокирован.
}
// Если сделать так
if (page ==0 && buttonEnabled == true) { // if you are on the "home" page (0)
buttonEnabled = false;
tft.fillScreen(BLACK);
tft.setCursor(100,190);
tft.print("home");
PogodaFunc();
// if (page ==0) {page =1;
}
// Обновляется мигая экраном, что не правильно.
}
Если функция блока погоды размещаю за пределы IF
Пример так, погода работает но сенсор имеет конфликт и не нажиматся
void loop()
{
PogodaFunc();
if (page ==0 && buttonEnabled == true) { // if you are on the "home" page (0)
buttonEnabled = false;
tft.fillScreen(BLACK);
tft.setCursor(100,190);
tft.print("home");
if (page ==0) {page =1;
}
Может сделать какой нибудь класс чтоб не было конфликтов, но мне нужно чтоб
было меню рабочим.
С кнопками проще, а вот с сенсорным экраном запарка.