o615ye161 писал(а): ↑25.12.2020{, 12:40}
Здравствуйте ecoins,как на ваших блоках реализовать LCD главный экран с параметрами и экран меню, чтобы в режиме меню других параметров на LCD не выводилось и соответственно наоборот, в данный момент у меня получается таким образом, что при первоначальном включении контроллера выводится все сразу при этом датчик температуры в ноле! После разового входа и выхода в меню начинает работать правильно, подскажите пожалуйста как можно это исправить и можно это вообще исправить?
Посмотрел Ваш проект.
1.LCD отображает на нем то, что у него на входе - если на его входе 0, то и отображает ноль.
Это связано с тем, что сенсор ds1820 не дает мгновенного значения - ему надо 1 сек на преобразование.
У вас блок стоит в медленной задаче, а он вызывается 1 раз в сек.
Если Вы посмотрите описание к блоку ds1820, то там написано:
------
7.В отличии от стандартного блока FLProg, у которого при измерении возникает задержка >17мс,
у данного блока несколько задержек разнесенные во времени - 1мс,1.3мс, 4.7мс (для AV328).
8.Опрос параметра занимает 5-6 программных прерываний. Рекомендуется не превышать период программных перываний 200мс.
Блок использует только библиотеку "OneWire.h" - это немного адаптированная библиотека с именем RT_50_HW_OneWire-master_PaulStoffregen.
-------------------------------------------------------------------------------------------------------------
Примечание: Рекомендуется подключать блок как оперативную, быструю или свободную задачу.
-----
Получается, что только сек 6-8 сек у Вас появляется актуальное значение.
2.Если Вы, как указано в описании ПБ, установите в свободную задачу, то первое показание появится через 1 сек.
Если Вы, как указано в описании ПБ, установите в оперативную задачу, то первое показание появится через 1 сек + 300мс.
Если Вы, как указано в описании ПБ, установите в оперативную задачу, то первое показание появится через 1 сек + 1200мс.
3.Дополнительную небольшую задержку 500мс может давать сам Lcd, так как он настроен на проверку обновлений входных значений с периодом=10 тиков (50х10=500мс). При неблагоприятной ситуации это и составит 500мс. Если для Вас это важно, можете уменьшить этот параметр до 2.
4.Для того, чтобы не появлялось ненужное значение, доступными средствами можете сделать так, чтобы при включение некоторое время вход EN был =0.
----
Успехов.