![]() |
Многозадачность на Arduino, несколько потоков loop()
Суть темы в том, что одновременно можно запустить несколько потоков loop(), переключение между которыми осуществляется по системному таймеру. Как результат, можно обрабатывать до трех независимых потоков команд в loop(), тем самым получая риалтайм обработку ввода/вывода и т.п. На то она и многозадачность.
Для полного понимания процессов, желательно внимательно покурить вот эту статью http://robocraft.ru/blog/985.html и продолжение http://robocraft.ru/blog/981.html А саму обновляемую, для новых версий компилятора, библиотеку можно взять тут https://github.com/pi-null-mezon/Arduinomultitask Это просто WOOW!!!! какой-то, товарищи. Нашел чисто случайно и просто обалдел. Это открывает просто неограниченные возможности, такие как реалтайм обработчики множества событий, без использования дефицитные прерываний, одновременые измерения и вывод и т.п. Применение просто безгранично, даже только с тремя потоками. |
|
Часовой пояс GMT +4, время: 13:12. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot