Долгая оцифровка сигнала
- jonik22sm
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
Доброй ночи. Ребята не могу понять почему долго выводит показания видео и проект прилогается
[bbvideo]https://youtu.be/S0zg1WAABLQ[/bbvideo] Отправлено спустя 1 час 28 минут 41 секунду:
Вот так без квадратичного фильтра
[bbvideo]https://youtu.be/khNkOpZZRFw[/bbvideo]
[bbvideo]https://youtu.be/S0zg1WAABLQ[/bbvideo] Отправлено спустя 1 час 28 минут 41 секунду:
Вот так без квадратичного фильтра
[bbvideo]https://youtu.be/khNkOpZZRFw[/bbvideo]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Можно сделать ВСЁ. Было бы желание.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Долгая оцифровка сигнала
Посмотрел проект.
У Вас все блоки выполняются в каждом цикле.
В них есть обработка и строковых переменных, и операций с плавающей запятой - каждая из них занимает немалые временные ресурсы.
При росте количества таких операций немалые временные задержки превращаются в значительные.
Плата №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.
У Вас все блоки выполняются в каждом цикле.
В них есть обработка и строковых переменных, и операций с плавающей запятой - каждая из них занимает немалые временные ресурсы.
При росте количества таких операций немалые временные задержки превращаются в значительные.
Плата №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
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
Спасибо большое за помощь буду изучать блоки ecoins
Отправлено спустя 3 минуты 59 секунд:
Если не затруднит, блоков очень много на сайте ecoins дайте направление где про них можно почитать и скачать, поиск ничего не выдал
Отправлено спустя 2 часа 21 минуту 38 секунд:
Я пол дня сегодня пробовал блоки экоинз и не смог с ними справиться у меня проблема с библиотеками RT_HW_HD44780.h
Отправлено спустя 3 минуты 59 секунд:
Если не затруднит, блоков очень много на сайте ecoins дайте направление где про них можно почитать и скачать, поиск ничего не выдал
Отправлено спустя 2 часа 21 минуту 38 секунд:
Я пол дня сегодня пробовал блоки экоинз и не смог с ними справиться у меня проблема с библиотеками RT_HW_HD44780.h
Можно сделать ВСЁ. Было бы желание.
-
- Лейтенант
- Сообщения: 514
- Зарегистрирован: 31 окт 2023, 12:50
- Имя: Андрей
- Благодарил (а): 21 раз
- Поблагодарили: 95 раз
Долгая оцифровка сигнала
Попробуйте в таком исполнении
Отправлено спустя 1 час 23 минуты 21 секунду:
Или вот так
Отправлено спустя 1 час 23 минуты 21 секунду:
Или вот так
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- jonik22sm
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
Выдало ошибку
Портов не хватает, у меня в проекте 7 реле. Если подключаю на ESP32s , тогда не работает WI-FI пробую прикрутить MCP23017 тогда проект вообще виснет и не работает даже дисплей. Не получается разобраться как прикрутить экоинз MCP23017
вот с FLPROG Отправлено спустя 3 минуты 10 секунд:
Вот нашёл, но что тут реализовано? Отправлено спустя 1 минуту 24 секунды:
Для меня если честно ECOINS тёмный лес. Вещь хорошая но как оно всё реализовывается?
Портов не хватает, у меня в проекте 7 реле. Если подключаю на ESP32s , тогда не работает WI-FI пробую прикрутить MCP23017 тогда проект вообще виснет и не работает даже дисплей. Не получается разобраться как прикрутить экоинз MCP23017
вот с FLPROG Отправлено спустя 3 минуты 10 секунд:
Вот нашёл, но что тут реализовано? Отправлено спустя 1 минуту 24 секунды:
Для меня если честно ECOINS тёмный лес. Вещь хорошая но как оно всё реализовывается?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Можно сделать ВСЁ. Было бы желание.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Долгая оцифровка сигнала
Отлично, что разработчики с форума подключились к поддержке Вашего проекта.
Но видно, что возникла накладка с версиями...
У меня на компьютере тест v03 запустился и показал на консоли относительно приличные параметры.
1.Попробуйте закомментировать строку которая с ошибкой (RT_HW_Base.consolePinTest();)
2. или на плате в блоке 2 в блоке board->cns измените значение параметра "Вывод системных тестовых пинов,CS" на"Не разрешено"
3. или просто удалите блок board->cns;
4. или еще можно взять этот блок из версии библиотеки, которая выложена на форуме и скорее всего установлена у Вас в FLPrpog.
------------
По MCP23017.
У Вас исходный проект совсем медленный - 160 циклов loop() /сек.
В проекте v03 около 1000. Не много, но уже что-то. И его дальше можно оптимизировать - тысяч 10 надо бы получить.
Тогда и MCP23017 будет "летать" - управлять платой нужно будет по условию свободной задачи.
Успехов.
С уважением, ecoins.
Но видно, что возникла накладка с версиями...
У меня на компьютере тест 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
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
Я скачал 1000_EIS_Library_1.11e_29.03.23 эти библиотеки и залил в D:\FLProg\ideV8\libraries, Правильно?
Можно сделать ВСЁ. Было бы желание.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Долгая оцифровка сигнала
Да, так. Должно работать.jonik22sm писал(а): 03 мар 2024, 22:01 Я скачал 1000_EIS_Library_1.11e_29.03.23 эти библиотеки и залил в D:\FLProg\ideV8\libraries, Правильно?
Мне сложно достичь идентичности - у меня стоит другая библиотека блоков.
- jonik22sm
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
Пункты 1 и 2 не помогли, пытаюсь компилировать пункт 3
Отправлено спустя 3 минуты 35 секунд:
Подскажите пожалуйста, где взять правильную библиотеку блоков
Отправлено спустя 15 минут 39 секунд:
viewtopic.php?t=8994#p128800
Все варианты приводят к ошибке компиляции, я уже не знаю что делать
Отправлено спустя 3 минуты 35 секунд:
Подскажите пожалуйста, где взять правильную библиотеку блоков
Отправлено спустя 15 минут 39 секунд:
viewtopic.php?t=8994#p128800
Все варианты приводят к ошибке компиляции, я уже не знаю что делать
Можно сделать ВСЁ. Было бы желание.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Долгая оцифровка сигнала
Попробуйте здесь: https://github.com/ecoins1994/0010_GitHub_EISjonik22sm писал(а): 03 мар 2024, 22:50 Подскажите пожалуйста, где взять правильную библиотеку блоков
Мне сложно оценить источник ошибки - первый раз я видел строку в протоколе компиляции и указал на возможные методы.jonik22sm писал(а): 03 мар 2024, 22:50 Все варианты приводят к ошибке компиляции, я уже не знаю что делать
Давайте попробуем достичь результата поэтапно. Разделяю Ваш девиз "Можно сделать ВСЁ. Было бы желание".
С выходом новой версии FLProg меньше будет накладок. Там и Wi-Fi новый, и Web-Server - по отзывам работают быстрее и стабильнее.
- jonik22sm
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
Новая версия намечается?
Отправлено спустя 17 минут :
Доброе утро. Поставил я новый пакет библиотек которую ссылку ы дали выше. Выдаёт ошибку. Плата 2 и 3 отключены от компиляции.
Отправлено спустя 17 минут :
Доброе утро. Поставил я новый пакет библиотек которую ссылку ы дали выше. Выдаёт ошибку. Плата 2 и 3 отключены от компиляции.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Можно сделать ВСЁ. Было бы желание.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Долгая оцифровка сигнала
Уже и неловко перед Вами.jonik22sm писал(а): 04 мар 2024, 07:00 Доброе утро. Поставил я новый пакет библиотек которую ссылку ы дали выше. Выдаёт ошибку. Плата 2 и 3 отключены от компиляции.
Давайте попробуем еще правку: найдите файл DirectTask.hpp (по ссылке в компиляции найдете её) - строка 112 как раз и дает ошибку - вместо return; напишите return id.run;
Эту ошибку уже правил, но она проскочила в те файлы.
Последний раз редактировалось ecoins 04 мар 2024, 11:41, всего редактировалось 1 раз.
- montirovka
- Капитан
- Сообщения: 735
- Зарегистрирован: 15 фев 2021, 16:16
- Откуда: Геленджик
- Имя: Сергей
- Благодарил (а): 44 раза
- Поблагодарили: 174 раза
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Долгая оцифровка сигнала
Да, диспетчер только генерит переменные, которые удобно использовать в вызове плат по условию.montirovka писал(а): 04 мар 2024, 10:42 А диспетчер задач без остальных плат должен компилироваться?
- jonik22sm
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
плата 2 и 3 отключены
закомментировал 329,328, 330 строку
дальше пошли ошибки
закомментировал 329,328, 330 строку
дальше пошли ошибки
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Можно сделать ВСЁ. Было бы желание.
-
- Лейтенант
- Сообщения: 514
- Зарегистрирован: 31 окт 2023, 12:50
- Имя: Андрей
- Благодарил (а): 21 раз
- Поблагодарили: 95 раз
Долгая оцифровка сигнала
библиотеки вот по такому пути ideV8\portable\sketchbook\libraries\
Все другие версии библиотек которые RT_******** удалите перед этим .
+ приложил тест, который у меня на 8,2,3 скомпилировался вот с этой версией библиотек.
Все другие версии библиотек которые RT_******** удалите перед этим .
+ приложил тест, который у меня на 8,2,3 скомпилировался вот с этой версией библиотек.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- jonik22sm
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
Сделал как Вы мне написали Отправлено спустя 14 минут 27 секунд:Ander писал(а): 04 мар 2024, 12:11 библиотеки вот по такому пути ideV8\portable\sketchbook\libraries\
Все другие версии библиотек которые RT_******** удалите перед этим .
+ приложил тест, который у меня на 8,2,3 скомпилировался вот с этой версией библиотек.
Перезагружал, папку темп чистил
Отправлено спустя 1 минуту 12 секунд:
Сейчас скачаю портативную версию. Попробую в ней
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Можно сделать ВСЁ. Было бы желание.
-
- Лейтенант
- Сообщения: 514
- Зарегистрирован: 31 окт 2023, 12:50
- Имя: Андрей
- Благодарил (а): 21 раз
- Поблагодарили: 95 раз
Долгая оцифровка сигнала
Внимательнее посмотрите путь ideV8\portable\sketchbook\libraries\ увас там разные версии одной и той же библиотеки RT_00******.
Удалите все папки начинающие на RT_ , а потом скиньте библиотеки из архива.
Удалите все папки начинающие на RT_ , а потом скиньте библиотеки из архива.
- jonik22sm
- Капитан
- Сообщения: 792
- Зарегистрирован: 20 ноя 2015, 11:28
- Откуда: Краснодар
- Имя: Евгений
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
- Контактная информация:
Долгая оцифровка сигнала
ОООО Боги! Случилось счастье!
Получается библиотеки RT_HW установлены по умолчанию и, что-бы не было таких тупняков и ошибок. Необходимо все родные удалить и залить новые. А я получается заливал поверх. Вечером домой приеду попробую новую схему которую Вы мне предложили.
Как прикрутить MCP23017?
родной блок не работает.
Отправлено спустя 1 минуту 15 секунд:
тоже из библиотеки ECOINS?
Получается библиотеки RT_HW установлены по умолчанию и, что-бы не было таких тупняков и ошибок. Необходимо все родные удалить и залить новые. А я получается заливал поверх. Вечером домой приеду попробую новую схему которую Вы мне предложили.
Как прикрутить MCP23017?
родной блок не работает.
Отправлено спустя 1 минуту 15 секунд:
тоже из библиотеки ECOINS?
Можно сделать ВСЁ. Было бы желание.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя