Блок Диспетчер задач (ecoins)

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

Блок Диспетчер задач (ecoins)

#41

Сообщение ecoins » 28.12.2022{, 04:04}

WildCat писал(а):
27.12.2022{, 17:50}
Вообще, не совсем понятно, как определять приоритет задач для оптимизации.
Можете просветить?
Могу, но очень и очень схематично - это лучше принять как есть...
1.Каждый даже самый простой блок FLProg отнимает mcs (иногда ms) . Если все платы выполняются без условий, то и все блоки соответственно выполняются в каждом цикле loop(). Практически нет блоков которые выполняются меньше mcs - 10,20, 100 и более mcs.
Например вроде простая функция analogRead на AVR занимает >130mcs. И их этих небольших но никчемных с точки зрения проекта(например ни так часто можно опрашивать ADC (7 кГц вряд-ли нужно - а если нужно, то другие технические средства привлекаются) очень быстро набегает ОДНА МИЛЛИСЕКУНДА - а это уже ограничивает частоту вызова 1кГц.
2. Самое простое решение - используйте диспетчер и только свободные задачи - сразу получите ощутимый результат.
3.Если Вы используете блоки ecoins, то они оптимизированы по времени и использование свободных задач в основном решает проблему. Условно каждая плата в большом проекте будет вызываться 1 раз в 100-500mcs.
4.Есть заведомо медленные операции (сильно проявляется на контроллерах AVR) - это строковые операции, их лучше выделять в медленные задачи. Совершенно неожиданно оказалась очень медленными операциями записи переменных float в регистры ModBus - так программного оказалось реализовано. Их тоже лучще в медленные (или быстрые) записывать.
5.В действительности чаще всего вызываются "свободные" задачи - термин пускай не смущает, он создан ecoins, долго искали название, остановились на этом. В операционных системах есть термин фоновая задача, он у нас тоже используется, но это не то.
6.Для оптимизации быстродействия есть есть встроенный инструмент - вывод на LCD HD44780 (можно и на Nextion) - библиотеки ecoins для этих устройств очень быстрые и "не тормозят".
==================
Простой ВЫВОД - ВСЕГДА вставляйте во ВСЕ проекты диспетчер задач и все платы выполняете по условиям. На простых проектах начинайте со СВОБОДНЫХ задач, во многих случаях этого бывает достаточно.

WildCat
Рядовой
Сообщения: 93
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 11
Имя: Михаил

Блок Диспетчер задач (ecoins)

#42

Сообщение WildCat » 28.12.2022{, 04:48}

ecoins, более-менее ясно, спасибо.

Ответить

Вернуться в «Библиотеки пользователей»