ЭкоСреда ecoins

Мультиплатформенная среда реального времени - библиотеки, блоки, примеры

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#581

Сообщение ecoins » 05.03.2023{, 05:18}

costy1957 писал(а):
05.03.2023{, 00:22}
по мотивам _Простой вывод на Lcd_Счетчик _v4_29.07.19Abz с сегодняшней библиотекой и визуализацией (LCD + Virtuino)
Посмотрел. Интересно.
1.Не очень понял сложности реализации генераторов перед счетчиков - наверное какую-то смысловую нагрузку несут. Мы обычно используем простой генератор событий (event).
2.Удивилось и понравилось использование 4-х блоков вывода фиксированного текста на LCD для переключения текста в пределах одного поля. Реализовано точно и будет работать быстро.
Раньше у нас был блок вывода на LCD фиксированных текстов по входному индексу. В процессе развития и упрощения интерфейса для работы LCD убрали, возможно зря.
3.Для большего изящества было бы полезно использование диспетчера с выводом на LCD быстродействие проекта.
-----------------
Последний раз редактировалось ecoins 05.03.2023{, 15:27}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#582

Сообщение ecoins » 05.03.2023{, 15:06}

****РАЗВИТИЕ МНОГОПЛАТФОРМЕННОСТИ В СРЕДЕ C++ и FLPROG****
Поводом для текста послужило сообщение из другой темы по энкондеру:
Ingwar писал(а):
05.03.2023{, 13:45}
Когда у меня возникнет желание и накопятся знания, я попробую сколхозить библиотеку, учитывающую все камни (но это не точно).
А пока у меня не получилось даже добавить другой камень в Ваш вариант энкодера.
Сначала я искал пару часов как и где описывается наименование камня для добавления их в #elif defined, нашел, добавил, описал, но не "взлетело" )))
===========================================================
1.Проблема многоплатформенности проекто встает перед многими разработчиками библиотек C++. Они решают их по своему, создавая среду для потенциальных конфликтов между библиотеками.
2.Неплохо "расшивается" работа с контроллерами в:
https://github.com/PaulStoffregen/OneWire [в директории util]
https://github.com/khoih-prog/ESP32TimerInterrupt
3.Последняя ссылка очень интересного и плодовитого разработчика Khoi Hoand из Канады.
К слову ESP_WifIManager - это его разработка https://github.com/khoih-prog/ESP_WiFiManager
В разработке ESP32TimerInterrupt он красиво разрешил и вопросы использованию таймеров для разных архитектур(AVR,ESP8266,ESP32,STM32,RP2040 и др.), тем самым создав возможность создавать универсальные блоки, которые будут вызываться по временным прерываниям.
-------------------------
4.Универсальная работа с пинами, таймерами для разных архитектур решает только часть проблем универсальной работы на разных контроллерах Также надо решать вопросы c аппаратными интерфейсами UART,i2c,SPI,CAN,BlueTooth,WiFi - в разных контроллерах есть порой незначительные отличия, некоторые приводят к ошибкам компиляции.
------------------------
5.Таким образом неплохо иметь единое ядро, которое решает вопросы универсального подхода для разных контроллеров.
------------------------
6.ecoins не один год занимается исследованием и разработкой универсальных методов для работы на разных контроллерах различных архитектур. Была разработана и развивается библиотека RT_HW_BASE.h (много раз меняла название, но всегда начиналась c "RT_"), которая решает вопросы многоплатформенности проектов на C++ и FLProg.
7.Быструю работу с пинами можно посмотреть там, за основу был принят подход из библиотеки 1-Wire ( https://github.com/PaulStoffregen/OneWire ). После выхода новой версии ядра ESP32>2.0, пины стали работать помедленнее, в следствии чего указанная библиотека 1-Wire(DS1820) не работала с ESP32. Мы разработали свою библиотеку 1-Wire(часть функций не реализовывали) и она работает хорошо. Возможно в более поздних версиях ESP32 и работает побыстрее - не проверяли.
-------------------------
8.После появления двухядерного Raspberry Pi Pico и практической работе на двух ядрах проектов FLProg, возникла необходимость доработки существующей концепции библиотеки для поддержки многоядерности, прежде всего с работой из разных ядер на интерфейсах (i2c,SPI и др.). Вроде бы основные решения найдены, в коде реализованы, сейчас подходим к стадии тестирования.
-------------------------
9.Из новых системных библиотек FLProg вытекает, что разработчик занимается разработкой универсальной поддержки разных архитектур контроллеров.
========================================================
Вывод : Создание библиотеки поддержки многоплатформенности в FLProg актуальна и своевременна и это один из поводов объединить усилия на форуме разработчиков системных библиотек, блоков, тестировщиков.
Призываю и приглашаю к совместной работе.
=========================================================
Спасибо.

evgen123
Сержант
Сообщения: 186
Зарегистрирован: 23.05.2020{, 13:31}
Репутация: 8
Откуда: Краснодар
Имя: Евгений

ЭкоСреда ecoins

#583

Сообщение evgen123 » 07.03.2023{, 11:35}

Здравствуйте Ecoins.
Разбираюсь с вашим блоком hc595.
При этой конфигурации настроек
595.png
не компилируется.
СпойлерПоказать
Arduino: 1.8.19 (Windows 10), Плата:"Generic STM32F4 series, BlackPill F411CE, STM32CubeProgrammer (SWD), Enabled (generic 'Serial'), None, Low/Full Speed, Smallest (-Os default), None, Newlib Nano (default)"

C:\Users\pc1\AppData\Local\Temp\flprog\pr16\pr16.ino: In function 'void loop()':

pr16:78:9: error: 'period_129172849' was not declared in this scope; did you mean 'periodTick_129172849'?

78 | period_129172849=100; //-getting table period;

| ^~~~~~~~~~~~~~~~

| periodTick_129172849

Несколько библиотек найдено для "SoftwareSerial.h"

Используется: C:\Program Files (x86)\FLProg\ideV8\portable\packages\STMicroelectronics\hardware\stm32\2.4.0\libraries\SoftwareSerial

Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\Esp32-SoftwareSerial

Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\SoftwareSerial

Несколько библиотек найдено для "Ethernet.h"

Используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\Ethernet

Не используется: c:\Program Files (x86)\FLProg\ideV8\libraries\Ethernet

Несколько библиотек найдено для "Wire.h"

Используется: C:\Program Files (x86)\FLProg\ideV8\portable\packages\STMicroelectronics\hardware\stm32\2.4.0\libraries\Wire

Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\Wire

Несколько библиотек найдено для "SPI.h"

Используется: C:\Program Files (x86)\FLProg\ideV8\portable\packages\STMicroelectronics\hardware\stm32\2.4.0\libraries\SPI

Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\SPI

exit status 1

'period_129172849' was not declared in this scope; did you mean 'periodTick_129172849'?



Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#584

Сообщение ecoins » 07.03.2023{, 15:01}

evgen123 писал(а):
07.03.2023{, 11:35}
Разбираюсь с вашим блоком hc595.
При этой конфигурации настроек
Попробуйте еще раз проверить.
У себя проверил на тесте, работает на STM32F411:
1.Проект:
Test_74HC95.png
Test_74HC595.zip
(318.07 КБ) 27 скачиваний
2.Скетч
Test_74HC595.zip
(318.07 КБ) 27 скачиваний
------------------------
Успехов.
Вложения
STM32F4xx_74HC595_v01_07.03.23.ino
(2.88 КБ) 22 скачивания

evgen123
Сержант
Сообщения: 186
Зарегистрирован: 23.05.2020{, 13:31}
Репутация: 8
Откуда: Краснодар
Имя: Евгений

ЭкоСреда ecoins

#585

Сообщение evgen123 » 07.03.2023{, 16:43}

Разобрался.. Благодарю.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#586

Сообщение costy1957 » 09.03.2023{, 12:55}

ecoins, поясните пожалуйста, назначение и как работать с входом En на блоке 02. вывод переменной LCD. Не получается погасить выведенную переменную по низкому уровню, тем самым освободить поле для вывода другой переменной.Изображение
Вложения
test display.rar
(202.45 КБ) 24 скачивания
Снимок экрана (1).png

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#587

Сообщение ecoins » 09.03.2023{, 14:24}

costy1957 писал(а):
09.03.2023{, 12:55}
ecoins, поясните пожалуйста, назначение и как работать с входом En на блоке 02. вывод переменной LCD. Не получается погасить выведенную переменную по низкому уровню, тем самым освободить поле для вывода другой переменной
В проекте у Вас каждые 10сек блокируются все блоки, часть их них должна быть с инверсией входа EN. В этом случае часть блоков будут работать в одном цикле меандра, другая часть в другом цикле меандра.
Попробуйте.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#588

Сообщение costy1957 » 09.03.2023{, 15:03}

блокируются, а мне нужно погасить все поля по низкому уровню. Такое реально в этих блоках?

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#589

Сообщение ecoins » 09.03.2023{, 15:20}

costy1957 писал(а):
09.03.2023{, 15:03}
блокируются, а мне нужно погасить все поля по низкому уровню. Такое реально в этих блоках?
Так и задумано. А разве по низкому уровню не отключаются? Если нет, напишите, потестируем и постараемся понять проблему.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#590

Сообщение costy1957 » 09.03.2023{, 15:53}

Econis, пост 587, пример поля не гаснут. Посмотрите пожалуйста. Нужно, чтобы по низкому уровню гасли, это расширит возможности блока.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#591

Сообщение ecoins » 09.03.2023{, 18:42}

costy1957 писал(а):
09.03.2023{, 15:53}
Econis, пост 587, пример поля не гаснут. Посмотрите пожалуйста. Нужно, чтобы по низкому уровню гасли, это расширит возможности блока.
Действительно, в процессе оптимизации эта опция оказалась утрачена. Возможно мы её вернем, хотя.... подумаем.
Но есть еще один действенный и хорошо работающий метод через управление EN всем дисплеем.
Попробуйте, может это даже удобнее.
Test_LCD.png
test display_eis.zip
(429.06 КБ) 23 скачивания
-----
Успехов.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#592

Сообщение costy1957 » 09.03.2023{, 19:26}

ecoins, вариант буду использовать, но, лично, я за возвращение опции управления вводом переменной, тогда и вход En не будет лишним.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#593

Сообщение ecoins » 09.03.2023{, 20:14}

costy1957 писал(а):
09.03.2023{, 19:26}
ecoins, вариант буду использовать, но, лично, я за возвращение опции управления вводом переменной, тогда и вход En не будет лишним.
Вход EN на блоках вывода и сейчас хорошо работает, когда одно поле заменяется другим. Как вариант вставлять пустое поле, например "Text".
Когда еще раз вернемся с дисплеем попробуем найти решение более полно реализующее смысловую нагрузку входа EN.
В Lcd мы предпочитаем сохранение быстродействия, это и связано со входом EN.
Но подумаем.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#594

Сообщение costy1957 » 09.03.2023{, 20:55}

Econis, спасибо за информацию, попробую пустое поле или другую переменную.

Отправлено спустя 53 минуты 26 секунд:
ecoins, тестирую и ознакамливаюсь с вашими блоками, посмотрите это, в диспетчере расширения выход Speedfilter на выходе 0.
Вложения
2 dispetchera.rar
(349.25 КБ) 22 скачивания

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#595

Сообщение ecoins » 10.03.2023{, 12:20}

costy1957 писал(а):
09.03.2023{, 21:48}
ecoins, тестирую и ознакамливаюсь с вашими блоками, посмотрите это, в диспетчере расширения выход Speedfilter на выходе 0.
Действительно оказалось так.
test display_eis.zip
(429.06 КБ) 23 скачивания
Исправленный блок в тесте, будет добавлен в новой версии.
-------------------------
Спасибо. Успехов.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#596

Сообщение costy1957 » 10.03.2023{, 13:26}

ecoins, во вложении нет диспетчера расширения

Виноват, недоглядел
Последний раз редактировалось costy1957 10.03.2023{, 13:46}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#597

Сообщение ecoins » 10.03.2023{, 13:33}

costy1957 писал(а):
10.03.2023{, 13:26}
ecoins, во вложении нет диспетчера расширения
На второй плате блок shed.add - он добавляет выходы.
Собственно этот блок дублирует соответствующие выходы диспетчера и работает только вместе с диспетчером. Сделан для удобства в некоторых(редких) применениях.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#598

Сообщение costy1957 » 10.03.2023{, 13:49}

ecoins, во вложении пост596 в проекте нет 2 платы

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

ЭкоСреда ecoins

#599

Сообщение costy1957 » 10.03.2023{, 20:36}

Снимок экрана (3).png
реверс бит V8 при компиляции выдает ошибку, реверс бит V16, V24, V32 нормально.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#600

Сообщение ecoins » 10.03.2023{, 23:33}

costy1957 писал(а):
10.03.2023{, 13:49}
ecoins, во вложении пост596 в проекте нет 2 платы
costy1957 писал(а):
10.03.2023{, 20:36}
реверс бит V8 при компиляции выдает ошибку, реверс бит V16, V24, V32 нормально.
Поправил.
2 dispetchera_eis_shedAdd_reverseV8.zip
(352.73 КБ) 32 скачивания

Ответить

Вернуться в «Команда ecoins»