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

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

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

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

#1

Сообщение Noname » 11.12.2018{, 19:41}

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

Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 59
Откуда: Гондурас

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

#2

Сообщение Dev1 » 11.12.2018{, 20:51}

Noname писал(а):
11.12.2018{, 19:41}
Если значение параметра меню задавать не входами +\- в основном блоке меню, а готовым значением в блоке "значение пункта меню", то оно индицируется на выходе блока меню лишь в момент установки на входе Set единицы.
Естественно, вы справку юзаете вообще?
Из справкиПоказать
Вход «Set» - при установке данного чек-бокса у блока появится вход «Set». Значение с входа 'Value' будет записываться в пункт меню только при наличии высокого уровня на этом входе.
Если вам нужно изменение когда вы крутите енкодер то и делайте логику соответствующую. Есть блок детектор именения числа.
Win10-64 FLProg v7.5.2 Portable :fie:

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

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

#3

Сообщение Noname » 11.12.2018{, 22:03}

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

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

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

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

#4

Сообщение pan » 11.12.2018{, 22:12}

Noname, можно тут почитать viewtopic.php?t=1855
может найдете что-то

Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 59
Откуда: Гондурас

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

#5

Сообщение Dev1 » 11.12.2018{, 22:22}

Noname писал(а):
11.12.2018{, 22:03}
детектор то есть, только куда его?
Вместо блока AND...
Win10-64 FLProg v7.5.2 Portable :fie:

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

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

#6

Сообщение Noname » 12.12.2018{, 00:45}

тогда можно просто константу "true" на вход Set повесить, только вот EEPROM не резиновая... да и не правильно это как то.

Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 59
Откуда: Гондурас

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

#7

Сообщение Dev1 » 12.12.2018{, 14:00}

Тут нужно найти консенсус :shok: , либо ваша переменная болтается в памяти пока работает мк, либо ваш мк отправится в помойку с убитой епром. Вы сами должны определить что вам важнее, постоянно крутить енкодер или переменная в епром... Обычно меню и делают чтоб там хранились настройки, подстроили и оставили. А если вы будете постоянно крутить то поставьте переменник на вход мк... :fie:
Win10-64 FLProg v7.5.2 Portable :fie:

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

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

#8

Сообщение Noname » 13.12.2018{, 01:05}

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

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

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

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

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

#9

Сообщение Noname » 14.12.2018{, 01:28}

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

Аватара пользователя
Hijin
Лейтенант
Сообщения: 325
Зарегистрирован: 22.08.2017{, 11:08}
Репутация: 13
Откуда: Винница
Имя: Юрий

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

#10

Сообщение Hijin » 08.01.2019{, 11:50}

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

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

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

#11

Сообщение dizzyy » 08.01.2019{, 12:07}

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

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

Аватара пользователя
Phazz
Полковник
Сообщения: 2558
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#12

Сообщение Phazz » 08.01.2019{, 12:16}


Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

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

#13

Сообщение RedSky » 08.01.2019{, 12:21}

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

Аватара пользователя
Hijin
Лейтенант
Сообщения: 325
Зарегистрирован: 22.08.2017{, 11:08}
Репутация: 13
Откуда: Винница
Имя: Юрий

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

#14

Сообщение Hijin » 08.01.2019{, 13:25}

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

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

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

#15

Сообщение RedSky » 08.01.2019{, 13:45}

Не вижу никаких проблем в том чтобы одновременно вывести несколько значений. Ведь так или иначе вы будете использовать их в проекте, просто параллельно с использованием их в логике можно там же сделать вывод на экран.

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

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

#16

Сообщение dizzyy » 08.01.2019{, 14:17}

Hijin, скиньте этот проект

Аватара пользователя
Phazz
Полковник
Сообщения: 2558
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#17

Сообщение Phazz » 08.01.2019{, 23:39}

Hijin писал(а):
08.01.2019{, 13:25}
Данном случае выводится значение активного пункта меню (только одного)
Это от куда такие выводы?

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

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

#18

Сообщение dizzyy » 09.01.2019{, 00:26}

имелось в виду так
СпойлерПоказать
пример.jpg
пример.flp
(169.13 КБ) 63 скачивания
Отправлено спустя 6 минут 1 секунду:
а так как тип значений в меню boolean с выходов блока значений можно сразу и в логику
хотя можно и string и "вкл " и "вык" но тогда для логтки надо сравнение строк брать..

Аватара пользователя
Hijin
Лейтенант
Сообщения: 325
Зарегистрирован: 22.08.2017{, 11:08}
Репутация: 13
Откуда: Винница
Имя: Юрий

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

#19

Сообщение Hijin » 09.01.2019{, 08:57}

dizzyy Так не катит
вы тупо берете константы, а не значение переменной
У Вас всегда будет высвечиваться ВКЛ во всех значениях, а не реальное значение этих выключателей
Вот мой пример Все разяснения в файле
Эмулировал в Протеусе
Вложения
19.01.09 проба .flp
(1.22 МБ) 75 скачиваний

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

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

#20

Сообщение dizzyy » 09.01.2019{, 12:14}

Вы не правы , вот попробуйте залить ..
пример.flp
(551.82 КБ) 71 скачивание

Ответить

Вернуться в «Спросить у знатоков»