Долгая оцифровка сигнала

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#1

Сообщение jonik22sm » 03.03.2024{, 01:26}

Доброй ночи. Ребята не могу понять почему долго выводит показания видео и проект прилогается
АВР2,01+ESP32 рабочая v1,2,2.flp
(6.34 МБ) 24 скачивания
Отправлено спустя 1 час 28 минут 41 секунду:
Вот так без квадратичного фильтра
Можно сделать ВСЁ. Было бы желание.

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

Долгая оцифровка сигнала

#2

Сообщение ecoins » 03.03.2024{, 06:29}

Посмотрел проект.
У Вас все блоки выполняются в каждом цикле.
В них есть обработка и строковых переменных, и операций с плавающей запятой - каждая из них занимает немалые временные ресурсы.
При росте количества таких операций немалые временные задержки превращаются в значительные.

Плата №3 с фильтрами.
Фильтр тяжелый - когда он работает, выполняются "тяжелые" вычисления в цикле на 20 элементах массива.
По задумке фильтр видимо должен выполняться 1 раз в 20мс. Так было бы, если после генератора стоял бы блок выделения фронта RTrig.
Без него 20 мс фильтр не работает, а 20 мс работает в каждом цикле . Так я увидел, возможно что-то и не так, что-то не разглядел.
На плате у Вас два таких фильтра и они работают от двух независимых генераторов. Вероятно они работают со сдвигом по фазе относительно 20 мс - следствием этого выполнение таких вычислений вероятнее всего происходит в каждом цикле.
Простые решения по этой плате:
1. После генераторов поставить блоки RTrig.
2. С платы генераторы убрать и саму плату вызывать по условию от внешнего генератора 20 мс + RTrig. В этом случае плата будет выполняться строго 1 раз в 20мс.
-------------------------
Традиционным источником задержки является и штатный блок LCD.
В Вашем случае у Вас много блоков и соответственно много временных "тормозов".
-------------------------
В целом проект достаточно хорошо структурирован, распределен по платам и его оптимизация по времени может быть выполнен достаточно просто.
Способ 1.
Добавить плату - лучше если она будет первой. На этой плате установить генераторы событий - это штатный генератор + блок RTrig. Платы ниже вызывать по условиям события от этих генераторов. Это уже резко повысит быстродействие.
Способ 2.
Чтобы не "городить " много генераторов и с не создавать много переменных под условия для каждой платы можно применить диспетчер задач ecoins(можно и другие, но мне такие пока неизвестны), который по сути делает то, что описано в способе 1.
---------------------------
Неплохо поможет и использование блоков вывода на дисплей от ecoins. У него есть особенности применения и переходить на него можно только после оптимизации проекта по времени.
Блоки очень шустро работают, на этапе отладки мы с диспетчера на дисплей выводим параметр быстродействия проекта - обычно это последние три колонки 1-строки.
Последовательно подключая последовательные платы проекта Вы имеете инструмент для объективного контроля за "торможением" каждой их плат и соответственно можно что-то улучшить на это плате или вызывать её реже.
-----------------------
В блоках ecoins есть достаточно эффективные и очень быстрые и эффективные фильтры. Они значительно могут ускорить работу платы 3.
----------------------
После оптимизации Ваш проект может достичь быстродействия в пределах 10-50 тысяч циклов loop() в секунду.
--------------------
С уважением, ecoins.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#3

Сообщение jonik22sm » 03.03.2024{, 09:49}

Спасибо большое за помощь буду изучать блоки ecoins

Отправлено спустя 3 минуты 59 секунд:
Если не затруднит, блоков очень много на сайте ecoins дайте направление где про них можно почитать и скачать, поиск ничего не выдал

Отправлено спустя 2 часа 21 минуту 38 секунд:
Я пол дня сегодня пробовал блоки экоинз и не смог с ними справиться у меня проблема с библиотеками RT_HW_HD44780.h
Можно сделать ВСЁ. Было бы желание.

Ander
Рядовой
Сообщения: 67
Зарегистрирован: 31.10.2023{, 12:50}
Репутация: 12
Имя: Андрей

Долгая оцифровка сигнала

#4

Сообщение Ander » 03.03.2024{, 19:00}

Попробуйте в таком исполнении

Отправлено спустя 1 час 23 минуты 21 секунду:
Или вот так
Вложения
АВР2,01+ESP32 рабочая v1,2,2_v03.zip
(712.82 КБ) 18 скачиваний
АВР2,01+ESP32 рабочая v1,2,2-1.rar
(170.92 КБ) 29 скачиваний

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#5

Сообщение jonik22sm » 03.03.2024{, 21:16}

Выдало ошибку
1.png

Портов не хватает, у меня в проекте 7 реле. Если подключаю на ESP32s , тогда не работает WI-FI пробую прикрутить MCP23017 тогда проект вообще виснет и не работает даже дисплей. Не получается разобраться как прикрутить экоинз MCP23017

вот с FLPROG
2.png
Отправлено спустя 3 минуты 10 секунд:
Вот нашёл, но что тут реализовано?
mcp23017_png.png
Отправлено спустя 1 минуту 24 секунды:
Для меня если честно ECOINS тёмный лес. Вещь хорошая но как оно всё реализовывается?
Можно сделать ВСЁ. Было бы желание.

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

Долгая оцифровка сигнала

#6

Сообщение ecoins » 03.03.2024{, 21:51}

Отлично, что разработчики с форума подключились к поддержке Вашего проекта.
Но видно, что возникла накладка с версиями...
У меня на компьютере тест v03 запустился и показал на консоли относительно приличные параметры.
1.Попробуйте закомментировать строку которая с ошибкой (RT_HW_Base.consolePinTest();)
2. или на плате в блоке 2 в блоке board->cns измените значение параметра "Вывод системных тестовых пинов,CS" на"Не разрешено"
3. или просто удалите блок board->cns;
4. или еще можно взять этот блок из версии библиотеки, которая выложена на форуме и скорее всего установлена у Вас в FLPrpog.
------------
По MCP23017.
У Вас исходный проект совсем медленный - 160 циклов loop() /сек.
В проекте v03 около 1000. Не много, но уже что-то. И его дальше можно оптимизировать - тысяч 10 надо бы получить.
Тогда и MCP23017 будет "летать" - управлять платой нужно будет по условию свободной задачи.
Успехов.
С уважением, ecoins.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#7

Сообщение jonik22sm » 03.03.2024{, 22:01}

Я скачал 1000_EIS_Library_1.11e_29.03.23 эти библиотеки и залил в D:\FLProg\ideV8\libraries, Правильно?
Можно сделать ВСЁ. Было бы желание.

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

Долгая оцифровка сигнала

#8

Сообщение ecoins » 03.03.2024{, 22:17}

jonik22sm писал(а):
03.03.2024{, 22:01}
Я скачал 1000_EIS_Library_1.11e_29.03.23 эти библиотеки и залил в D:\FLProg\ideV8\libraries, Правильно?
Да, так. Должно работать.
Мне сложно достичь идентичности - у меня стоит другая библиотека блоков.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#9

Сообщение jonik22sm » 03.03.2024{, 22:31}

Пункты 1 и 2 не помогли, пытаюсь компилировать пункт 3

Отправлено спустя 3 минуты 35 секунд:
Подскажите пожалуйста, где взять правильную библиотеку блоков

Отправлено спустя 15 минут 39 секунд:
viewtopic.php?t=8994#p128800
Все варианты приводят к ошибке компиляции, я уже не знаю что делать
Можно сделать ВСЁ. Было бы желание.

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

Долгая оцифровка сигнала

#10

Сообщение ecoins » 03.03.2024{, 23:03}

jonik22sm писал(а):
03.03.2024{, 22:50}
Подскажите пожалуйста, где взять правильную библиотеку блоков
Попробуйте здесь: https://github.com/ecoins1994/0010_GitHub_EIS
jonik22sm писал(а):
03.03.2024{, 22:50}
Все варианты приводят к ошибке компиляции, я уже не знаю что делать
Мне сложно оценить источник ошибки - первый раз я видел строку в протоколе компиляции и указал на возможные методы.
Давайте попробуем достичь результата поэтапно. Разделяю Ваш девиз "Можно сделать ВСЁ. Было бы желание".
С выходом новой версии FLProg меньше будет накладок. Там и Wi-Fi новый, и Web-Server - по отзывам работают быстрее и стабильнее.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#11

Сообщение jonik22sm » 04.03.2024{, 06:43}

Новая версия намечается?

Отправлено спустя 17 минут :
Доброе утро. Поставил я новый пакет библиотек которую ссылку ы дали выше. Выдаёт ошибку. Плата 2 и 3 отключены от компиляции.
Вложения
3.png
Можно сделать ВСЁ. Было бы желание.

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

Долгая оцифровка сигнала

#12

Сообщение ecoins » 04.03.2024{, 09:07}

jonik22sm писал(а):
04.03.2024{, 07:00}
Доброе утро. Поставил я новый пакет библиотек которую ссылку ы дали выше. Выдаёт ошибку. Плата 2 и 3 отключены от компиляции.
Уже и неловко перед Вами.
Давайте попробуем еще правку: найдите файл DirectTask.hpp (по ссылке в компиляции найдете её) - строка 112 как раз и дает ошибку - вместо return; напишите return id.run;
Эту ошибку уже правил, но она проскочила в те файлы.
Последний раз редактировалось ecoins 04.03.2024{, 11:41}, всего редактировалось 1 раз.

Аватара пользователя
montirovka
Сержант
Сообщения: 224
Зарегистрирован: 15.02.2021{, 16:16}
Репутация: 48
Откуда: Геленджик
Имя: Сергей

Долгая оцифровка сигнала

#13

Сообщение montirovka » 04.03.2024{, 10:42}

А диспетчер задач без остальных плат должен компилироваться?
Люблю учиться на чужих ошибках.

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

Долгая оцифровка сигнала

#14

Сообщение ecoins » 04.03.2024{, 11:27}

montirovka писал(а):
04.03.2024{, 10:42}
А диспетчер задач без остальных плат должен компилироваться?
Да, диспетчер только генерит переменные, которые удобно использовать в вызове плат по условию.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#15

Сообщение jonik22sm » 04.03.2024{, 11:43}

плата 2 и 3 отключены
закомментировал 329,328, 330 строку
дальше пошли ошибки
4.JPG
Можно сделать ВСЁ. Было бы желание.

Ander
Рядовой
Сообщения: 67
Зарегистрирован: 31.10.2023{, 12:50}
Репутация: 12
Имя: Андрей

Долгая оцифровка сигнала

#16

Сообщение Ander » 04.03.2024{, 12:11}

библиотеки вот по такому пути ideV8\portable\sketchbook\libraries\
Все другие версии библиотек которые RT_******** удалите перед этим .

+ приложил тест, который у меня на 8,2,3 скомпилировался вот с этой версией библиотек.
Вложения
Тест.rar
(40.85 КБ) 13 скачиваний
libraries.rar
(1.69 МБ) 12 скачиваний

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#17

Сообщение jonik22sm » 04.03.2024{, 14:02}

Ander писал(а):
04.03.2024{, 12:11}
библиотеки вот по такому пути ideV8\portable\sketchbook\libraries\
Все другие версии библиотек которые RT_******** удалите перед этим .

+ приложил тест, который у меня на 8,2,3 скомпилировался вот с этой версией библиотек.
Сделал как Вы мне написали
5.JPG
Отправлено спустя 14 минут 27 секунд:
Перезагружал, папку темп чистил

Отправлено спустя 1 минуту 12 секунд:
Сейчас скачаю портативную версию. Попробую в ней
Можно сделать ВСЁ. Было бы желание.

Ander
Рядовой
Сообщения: 67
Зарегистрирован: 31.10.2023{, 12:50}
Репутация: 12
Имя: Андрей

Долгая оцифровка сигнала

#18

Сообщение Ander » 04.03.2024{, 15:04}

Внимательнее посмотрите путь ideV8\portable\sketchbook\libraries\ увас там разные версии одной и той же библиотеки RT_00******.

Удалите все папки начинающие на RT_ , а потом скиньте библиотеки из архива.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Долгая оцифровка сигнала

#19

Сообщение jonik22sm » 04.03.2024{, 15:26}

ОООО Боги! Случилось счастье!
Получается библиотеки RT_HW установлены по умолчанию и, что-бы не было таких тупняков и ошибок. Необходимо все родные удалить и залить новые. А я получается заливал поверх. Вечером домой приеду попробую новую схему которую Вы мне предложили.
Как прикрутить MCP23017?
родной блок не работает.

Отправлено спустя 1 минуту 15 секунд:
тоже из библиотеки ECOINS?
Можно сделать ВСЁ. Было бы желание.

Ander
Рядовой
Сообщения: 67
Зарегистрирован: 31.10.2023{, 12:50}
Репутация: 12
Имя: Андрей

Долгая оцифровка сигнала

#20

Сообщение Ander » 04.03.2024{, 15:55}

ДА.

Ответить

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