Страница 1 из 2

Подсветка дисплея - не менял номер экрана

Добавлено: 28.01.2016{, 20:29}
taras20
Дисплей не горит. Есть 4 кнопки. Влево вправо вверх вниз.
Как сделать, чтобы когда нет подсветки при нажатии любой кнопки включился дисплей, но кнопка не отрабатывалась? Например я остался на первом экране.
Во всех проектах или отдельная кнопка или переключает номер экрана.
Свой проект прилагаю.

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 00:54}
Олег
Посмотрите в приложении - я делал пользовательский блок для этого, правда не проверял в работе.

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 01:39}
garikb
Проверить не на чем, пробуйте

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 10:28}
Олег
garikb, посмотрел ваш вариант и возник вопрос: чем обусловлено использование таблицы состояний если можно использовать обычный блок И?

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 14:00}
taras20
garikb писал(а):Проверить не на чем, пробуйте
Спасибо проверил. При компиляции удваивает переменные. Как в спойлере и ещё в нескольких местах. Убираю вручную - РАБОТАЕТ классно. Убираю плату с подсветкой не ругается. Поменял таблицы соответствий на И - работает. Пересохранял модуль вставлял в новый проект - эффект тот же.

СпойлерПоказать
struct UB_140904468
{
bool ubo_83413477 = 0;
bool _kp1 = 0;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _ktim1 = 0;
bool _bounseInput1S = 0;
bool _bounseInput1O = 0;
unsigned long _bounseInput1P = 0UL;
bool _bounseInput1S = 0;
bool _bounseInput1O = 0;
unsigned long _bounseInput1P = 0UL
;
};
Добавлено (29.01.2016, 14:00)
---------------------------------------------
Олег писал(а):Посмотрите в приложении - я делал пользовательский блок для этого, правда не проверял в работе.
Спасибо. Что-то не фурычит. Буду разбираться. Подсветка включается а кнопки не переключаются.

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 14:34}
Олег
Да, похоже нашел ошибку, кнопки переключались-бы если подержать дольше секунды.
Переделал, сейчас должен работать.

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 14:52}
taras20
Олег писал(а):Да, похоже нашел ошибку, кнопки переключались-бы если подержать дольше секунды.Переделал, сейчас должен работать.
Кнопки переключаются, но нажатие срабатывает на изменение номера меню, а не должно пробую поиграть настройками...

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 14:59}
Олег
При нажатии кнопки на входе высокий уровень или низкий?

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 15:00}
taras20
Олег писал(а):При нажатии кнопки на входе высокий уровень или низкий?
Подтянут к верху резистором. На вход модуля подаю инветрированным.

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 15:07}
Олег
Если подсветка не горит, то не должен реагировать на любую кнопку, при нажатии любой кнопки должна включится подсветка, а дальше кнопки работают как всегда.
 Вы настройки блока не меняли?

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 16:06}
taras20
Олег писал(а):Если подсветка не горит, то не должен реагировать на любую кнопку, при нажатии любой кнопки должна включится подсветка, а дальше кнопки работают как всегда. Вы настройки блока не меняли?
При запуске подсветка не горит. Нажимаю кнопку включается подсветка и переключается номер меню (а не должен). В настройках поменял подсветка время в секундах а не минутах и сделал 20 секунд для отладки. Остальное как в настройках.

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 16:42}
garikb
Олег писал(а):garikb, посмотрел ваш вариант и возник вопрос: чем обусловлено использование таблицы состояний если можно использовать обычный блок И?
Олег, игрался с таблицами а потом решил добавить пользовательский блок и автоматом оставил, конечно блоки И лучше ))
taras20 писал(а):При компиляции удваивает переменные.
Проблема была в пользовательском блоке, а так работает?
компилирует без ошибок

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 16:44}
Олег
Странно, чуть позже загоню в Протеус, посмотрим в чем дело.

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 16:49}
taras20
garikb писал(а):Проблема была в пользовательском блоке, а так работает?компилирует без ошибок
Да заработало! Спасибо. Только он при первом нажатии отсчитывает своё время и не смотря что я продолжаю щелкать кнопками всё равно гасит экран, а не заново отсчитывает. Это конечно не смертельно...

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 16:55}
garikb
Вот и славно.
Удачи во всех начинаниях ))

Подсветка дисплея - не менял номер экрана

Добавлено: 29.01.2016{, 19:17}
garikb
taras20 писал(а):олько он при первом нажатии отсчитывает своё время и не смотря что я продолжаю щелкать кнопками всё равно гасит экран, а не заново отсчитывает. Это конечно не смертельно...
По логике так и должно работать.
А если подключить так:

Подсветка дисплея - не менял номер экрана

Добавлено: 30.01.2016{, 00:52}
Олег
Сделал блок, так и не понял почему не работал, по-логике все было сделано правильно, по-всей видимости при компиляции что-то происходило не то. Пришлось идти другим путем.

Подсветка дисплея - не менял номер экрана

Добавлено: 30.01.2016{, 10:33}
taras20
Олег писал(а):Пришлось идти другим путем
И этот путь оказался верным. Заработало. Просто лаконично удобно. Если бы ещё после последующего нажатия кнопки время отсчитывалось заново тогда цены бы ей не было. Сейчас только по первому нажатию включается таймер и по истечению указанного времени гаснет, "жмакал" ты кнопки потом или нет.
Вот бы был такой модуль для циклического счетчика по кругу  кнопка--> 0123 0123  и кнопка<-- 03210 321. (удержка-ускорение и с заданным максимумом)
С тут сваял на основе советов форумчан, но мне кажется уж больно навороченно

Подсветка дисплея - не менял номер экрана

Добавлено: 30.01.2016{, 11:11}
garikb
taras20, так испробуйте мое последнее вложение, если заработает, то и модуле Олега измените по аналогии.

Подсветка дисплея - не менял номер экрана

Добавлено: 30.01.2016{, 14:56}
taras20
Доработал модуль подсветки Олега (FBD), чтобы при первом включении включился экран, чтобы посмотреть главное меню например