Страница 3 из 3

Оптимизация создаваемой программы, использование блоков

Добавлено: 24 янв 2019, 08:57
Alias
Sancho писал(а): 27 янв 2018, 11:22Делать свой блок для дисплея с необходимым функционалом. Т.е. слова типа "Температура", "Влажность" и иже выводить единоразово и не затирать, а переменные слать по мере необходимости в нужные знакоместа.
Нигде не нашел, хотя похожее где-то мелькало, поэтому буду исходить из логики.
Допустим, есть у меня такие слова, та же "Температура". Я могу вывести ее отдельным блоком. Но сам блок, как я понимаю, нужно размещать на отдельной плате, чтобы в каждом цикле "Температура" не выводилась снова? Стандартный блок ведь в каждом цикле выводит то, что на входе, а не изменения.
Свой блок это в FBD? Почему не отдельная плата?

Оптимизация создаваемой программы, использование блоков

Добавлено: 24 янв 2019, 12:20
Sancho
[ref=#404040]Alias[/ref], Каждый выбирает, что ему удобнее. Блоков на FBD никогда не делал.
Иногда проще написать один раз своё и не думать о разделении плат.

Отправлено спустя 37 минут 23 секунды:
Вот пример. Из жизни Серёги.
Вначале собирались 8 датчиков температуры, и отправлялись на локальный дисплей некстион. Было 8 блоков. Дох Много и не оптимально.
Переделал в сборку в одну строку, каждое значение - 5 символов, в некстион - простой разбор.
[spoiler]
На дисплей -v01.png
[/spoiler]
Сделал Серёге ПБлоки в котором есть главный, с функцией, и доп. С вызовом этой функции.
[spoiler]
На дисплей -v2.png
[/spoiler]
Неоптимально - в каждом цикле работа со строками, которая в данный момент не нужна.
Слегка поменяли, стало красивее и оптимальнее:
[spoiler]
На дисплей -v1.png
[/spoiler]
Дальше - больше.
Модбас. Перед отправкой флоат с датчиков умножаем на 10, переводим в инт, укладываем в инпут рег. Ок.
На приёмной вначале делили на 10 флоатов, потом блоки, описанные выше и на панель.
А я говорю - некрасиво, места много перед глазами занимают.
Так будет лучше!
[spoiler]
На дисплей -v03.png
[/spoiler]
Итого - всё уместилось в одном блоке!
Итого - написание своего ПБ даёт всякие возможности, одна, простая - выравнивание текста, особенно цифр, по правому краю, пробелы слева, в несколько строк кода и его многократного пользования в проекте.
Как-то так...

Отправлено спустя 27 минут 43 секунды:
Чего внутри у маленького блока с последнего скрина?
Вот:
Заготовка Atmel_01 .flp

Оптимизация создаваемой программы, использование блоков

Добавлено: 24 янв 2019, 13:01
SSSergeich
Sancho писал(а): 24 янв 2019, 12:20Вот пример. Из жизни Серёги.
Вначале собирались 8 датчиков температуры, и отправлялись на локальный дисплей некстион. Было 8 блоков. Дох Много и не оптимально.
Переделал в сборку в одну строку, каждое значение - 5 символов, в некстион - простой разбор.
Это ты еще про 24 переменных состояния кнопок не упомянул))

Оптимизация создаваемой программы, использование блоков

Добавлено: 24 янв 2019, 14:16
Alias
Sancho писал(а): 24 янв 2019, 12:20Чего внутри у маленького блока с последнего скрина?
Вот:
"Как хорошо быть генералом,
...
Стану я точно генералом,
Если капрала,
Если капрала переживу!" (с)

Оптимизация создаваемой программы, использование блоков

Добавлено: 08 мар 2019, 12:17
Sancho
Попробована библиотека LiquidCrystal_SR.h и блоки [ref]valand[/ref].
Результат потрясающий!
Сравнение:
16 символов по 400-му I2C блоком из FLProg - 9650 мксек.
то-же блоком lcd_1602_74hc164_v3_autoerase- 1355 мксек !!!!!!!!!!!!!!!!!!!!!!!!!!!
Железа нет, дисплейного на 164-й, чисто по времени выполнения.

Оптимизация создаваемой программы, использование блоков

Добавлено: 08 мар 2019, 13:23
valand
А для обычного подключения 1602 (через rs,e,d4-d7), есть подобные данные?

Оптимизация создаваемой программы, использование блоков

Добавлено: 08 мар 2019, 13:41
Sancho
valand писал(а): 08 мар 2019, 13:23А для обычного подключения 1602 (через rs,e,d4-d7), есть подобные данные?
Тут