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

Вопрос по блоку меню

Добавлено: 11 дек 2018, 19:41
Noname
Приветствую всех. Очередной вопрос, на этот раз по блоку "значение пункта меню". Если значение параметра меню задавать не входами +\- в основном блоке меню, а готовым значением в блоке "значение пункта меню", то оно индицируется на выходе блока меню лишь в момент установки на входе Set единицы. То есть на дисплее не видно изменение значения в реальном времени(когда крутишь энкодер), а только при установке в Set. Допустим, Set это кнопка энкодера, тогда можно нажать кнопку и крутить, но если пишешь в EEPROM то такой подход не очень, т.к. записывается каждое изменение значения. Если вообще убрать вывод Set (не ставить галочку) , то значение меняется как надо, но не устанавливается. Как быть?Изображение

Вопрос по блоку меню

Добавлено: 11 дек 2018, 20:51
Dev1
Noname писал(а): 11 дек 2018, 19:41Если значение параметра меню задавать не входами +\- в основном блоке меню, а готовым значением в блоке "значение пункта меню", то оно индицируется на выходе блока меню лишь в момент установки на входе Set единицы.
Естественно, вы справку юзаете вообще?
[spoiler=Из справки]
Вход «Set» - при установке данного чек-бокса у блока появится вход «Set». Значение с входа 'Value' будет записываться в пункт меню только при наличии высокого уровня на этом входе. [/spoiler]
Если вам нужно изменение когда вы крутите енкодер то и делайте логику соответствующую. Есть блок детектор именения числа.

Вопрос по блоку меню

Добавлено: 11 дек 2018, 22:03
Noname
спасибо за ответ. да , справку читаю в первую очередь, возможно не всегда правда понимаю))
по второму пункту не пойму какую логику.. детектор то есть, только куда его? нужно в обход меню городить индикацию значения на экран? тогда отсчет пойдет от значения энкодера, а не от прошлого установленного в меню.
возможно я не так обьясняю... есть дисплей 1602, верхняя строка название параметра, нижняя- значение (цифры). энкодер крутишь - меняются цифры, нажимаешь на энкодер- контроллер запоминает цифру. и при следующем входе значение индицируется это.+ при потере питания последнее значение сохраняется. это как хотелось бы...

на деле выходит, что энкодер крутишь -цифра не меняется на дисплее, но внутри контроллера идет счет импульсов энкодера, нажимаешь на энкодер - цифра меняется на ту, которую внутри насчитал контроллер. если крутишь энкодер нажав, цифры меняются пока удерживаешь нажатие , но так каждая цифра отправляется в еепром, что не хорошо.

Вопрос по блоку меню

Добавлено: 11 дек 2018, 22:12
pan
[ref]Noname[/ref], можно тут почитать viewtopic.php?t=1855
может найдете что-то

Вопрос по блоку меню

Добавлено: 11 дек 2018, 22:22
Dev1
Noname писал(а): 11 дек 2018, 22:03детектор то есть, только куда его?
Вместо блока AND...

Вопрос по блоку меню

Добавлено: 12 дек 2018, 00:45
Noname
тогда можно просто константу "true" на вход Set повесить, только вот EEPROM не резиновая... да и не правильно это как то.

Вопрос по блоку меню

Добавлено: 12 дек 2018, 14:00
Dev1
Тут нужно найти консенсус :shok: , либо ваша переменная болтается в памяти пока работает мк, либо ваш мк отправится в помойку с убитой епром. Вы сами должны определить что вам важнее, постоянно крутить енкодер или переменная в епром... Обычно меню и делают чтоб там хранились настройки, подстроили и оставили. А если вы будете постоянно крутить то поставьте переменник на вход мк... :fie:

Вопрос по блоку меню

Добавлено: 13 дек 2018, 01:16
Noname
Переделал проект, теперь делаю всё тоже самое, тем же энкодера, только через основной блок меню. Т.е. изменяю значение импульсами на входы "+" и "-" значения пункта меню, сохраняю в еепром нажатием на энкодер. Так вот из основного блока меняется все как надо, т.е. строка на дисплее со значение изменяется в реальном времени (не само значение) , а сохраняется только при нажатии. Решена проблема и индикация есть, и еепром целей.
Из добавленного сделал только определение направления счета энкодера, т.к. в основной блок нельзя сдать цифровое значение (интегер).

Отправлено спустя 9 минут 21 секунду:
Dev1 писал(а): 12 дек 2018, 14:00Тут нужно найти консенсус :shok: , либо ваша переменная болтается в памяти пока работает мк, либо ваш мк отправится в помойку с убитой епром. Вы сами должны определить что вам важнее, постоянно крутить енкодер или переменная в епром... Обычно меню и делают чтоб там хранились настройки, подстроили и оставили. А если вы будете постоянно крутить то поставьте переменник на вход мк... :fie:
Ну смотрите, через блок основного меню все работает нормально, по логике. Смысл энкодера в том, чтоб не городить кучу кнопок, да и для саморазвития. Даже если каждое значение заносить в еепром, то Ардуино в том режиме работы в котором я планирую хватит на очень долго, даже если меню крутить каждый день. Но согласитесь , сама идея записывать каждое значение как то не правильна что-ли)) . При том что блок основного меню работает иначе. Дело ещё в том, что по всему форуму лучший блок энкодера по стабильности работы (даже без физ подтяжки работает) это блок на прерываниях от автора. Но в этом блоке к сожалению, нет боолиновских выходов направления, а только выход отсчитанного значения. А со значением осн блок меню не работает.
Совсем не понял про переменник.

Отправлено спустя 1 минуту 40 секунд:
И главное с осн блоком меню никакого консенсуса не нужно, и ни какая переменная нигде не болтается)

Вопрос по блоку меню

Добавлено: 14 дек 2018, 01:28
Noname
И смотрите что получается ещё при записи каждого значения в еепром.По сути запись в еепром при использовании блока "значение пункта меню" работает до следующего изменения переменной через меню при помощи энкодера если было отключение питания. Сейчас объясню почему. Если питание пропало, то счётчик значения энкодера станет равным "0" и при входе в меню мы заносим этот ноль в нашу переменную меню. То есть для пользователя это будет очень не догичо., Представьте он выставил определенное значение пункта меню, потом через время решил подкорректировать, (а за это время допустим пропадало питание или кто знает сколько крутили энкодер "в холостую", счёт то внутри энкодера идёт) то пользователь увидеть непредсказуемое значение. А теперь если значение было допустим, 5000, ему нужно крутить снова до этого значения, и при этом каждое изменение запишется в еепром. Кстати, так можно наверно проверить заявленную ёмкость последней))))

Вопрос по блоку меню

Добавлено: 08 янв 2019, 11:50
Hijin
Поздавляю всех фоумчан С Новым годом и Рождиством Христовым!
Хочу задать вопрс:
В основном блоке меню есть галочка сохранить в EEPROM
как можно вытянуть с EEPROM эти данные чтобы они выводились на дисплей не переходя на данный пункт меню
То есть хочу на дисплее 1602 выводить данные сразу с нескольких пунктов меню (подменю) на одном экране
Пимерно так
Зал Вкл КухняВык
ГаражВык НасосВкл
где выделенные это значения из EEPROM ппунктов меню

Вопрос по блоку меню

Добавлено: 08 янв 2019, 12:07
dizzyy
Hijin писал(а): 08 янв 2019, 11:50Поздавляю всех фоумчан С Новым годом и Рождиством Христовым!
Хочу задать вопрс:
В основном блоке меню есть галочка сохранить в EEPROM
как можно вытянуть с EEPROM эти данные чтобы они выводились на дисплей не переходя на данный пункт меню
То есть хочу на дисплее 1602 выводить данные сразу с нескольких пунктов меню (подменю) на одном экране
Пимерно так
Зал Вкл КухняВык

ГаражВык НасосВкл
где выделенные это значения из EEPROM ппунктов меню
а блок значения пунктов меню?
насколько понимаю запись в ЕЕПРМ только для того чтоб при смене и перезагрузке не вписывались стартовые значения ы

Вопрос по блоку меню

Добавлено: 08 янв 2019, 12:16
Phazz

Вопрос по блоку меню

Добавлено: 08 янв 2019, 12:21
RedSky
Так ли надо выводить значение именно EEPROM'a?
Почему бы просто не использовать блоки для получения значения из меню?
Насколько знаю EEPROM читают один раз при старте программы. Нигде не находил информации о допустимости чтения в каждом цикле и сколько времени занимает само чтение. Хотя в FlProg при использовании стандартных блоков как раз происходит чтение в каждом цикле.

Вопрос по блоку меню

Добавлено: 08 янв 2019, 13:25
Hijin
Hijin, https://flprog.ru/bez-rubriki/helppage/ ... ValueBlock
Поможет
Нет не поможет В Данном случае выводится значение активного пункта меню (только одного), а в моем случае надо выводить сразу несколько значений на одном экране
Сделал вот так в принципе получилось но это только с двумя значениями
[spoiler]
image002.jpg
[/spoiler]
Вэтом случае при переходе на основное меню этих подменю они начинают перемигиватся с частотой заданой генератором

Вопрос по блоку меню

Добавлено: 08 янв 2019, 13:45
RedSky
Не вижу никаких проблем в том чтобы одновременно вывести несколько значений. Ведь так или иначе вы будете использовать их в проекте, просто параллельно с использованием их в логике можно там же сделать вывод на экран.

Вопрос по блоку меню

Добавлено: 08 янв 2019, 14:17
dizzyy
[ref]Hijin[/ref], скиньте этот проект

Вопрос по блоку меню

Добавлено: 08 янв 2019, 23:39
Phazz
Hijin писал(а): 08 янв 2019, 13:25Данном случае выводится значение активного пункта меню (только одного)
Это от куда такие выводы?

Вопрос по блоку меню

Добавлено: 09 янв 2019, 00:32
dizzyy
имелось в виду так
[spoiler]
пример.jpg
[/spoiler]
пример.flp
Отправлено спустя 6 минут 1 секунду:
а так как тип значений в меню boolean с выходов блока значений можно сразу и в логику
хотя можно и string и "вкл " и "вык" но тогда для логтки надо сравнение строк брать..

Вопрос по блоку меню

Добавлено: 09 янв 2019, 08:57
Hijin
dizzyy Так не катит
вы тупо берете константы, а не значение переменной
У Вас всегда будет высвечиваться ВКЛ во всех значениях, а не реальное значение этих выключателей
Вот мой пример Все разяснения в файле
Эмулировал в Протеусе

Вопрос по блоку меню

Добавлено: 09 янв 2019, 12:14
dizzyy
Вы не правы , вот попробуйте залить ..
https://www.youtube.com/watch?v=nkZ3QHgGj8g
пример.flp