Вопрос по параллельным задачам в ардуино
- Войдите на сайт для отправки комментариев
Пт, 20/01/2017 - 22:37
Добрый день! Подскажите, пожалуйста, если знаете.
Как я понимаю, параллельные задачи Ардуино, а равно и атмега8, 16 и т.п. решать не могут.
Можно делать лишь псевдопараллельные потоки.
Так вот, можно ли этой псевдопараллельностью сделать так, чтоб скорость работы одной функции, регулировалось бы другой. Где во второй функции, скорость считывания/работы была бы постоянна?
Заранее спасибо
Например, попробовал написать простой код, с помощью библиотеки "Thread".
В нём, мы управляем скоростью мигания светодиода с помощью кнопки. При этом, считываем информацию с кнопки раз в 1/2 секунды.
В общем, либо в коде ошибся, либо где-то эта псевдопараллельность не работает...
Прерывания нужны....прерывания..
Прерывания в форме delay, как я помню, вроде как нельзя делать с этой библиотекой...
Ой блин. Говорят если много машин будет ехать по одной дороге, то будут сплошные аварии. И да есть и аварии , и все равно едет много машин по одним и тем же дорогам. Так и с паралленые задачи в Ардуине. Наверно вы криво пишете парралельные задачи в Ардуине, то и выходят у вас аварии.
Ну и полный скетч здесь https://yadi.sk/d/Ezocs_n8395UxB
Добрый день! Подскажите, пожалуйста, если знаете.
Как я понимаю, параллельные задачи Ардуино, а равно и атмега8, 16 и т.п. решать не могут.
Неправильно понимаете. Вселенная едина, все процессы взаимосвязаны. Паралельная вселенная не обнаружена. Паралельнаые задачи - выдумка мосада для порабощения гоев. Ничто не может решать паралельные задачи, они всегда пересекутся, и игнорировать это нельзя. Псевдопаралельность делать можна, но оно того не стоит. Контексты либо принципиально не делятся (один пин на 2 задачи) либо требуют неоправдано много ресурсов для их хранении при переключениях между задачами.
Пишите код правильно. Выбросите из головы что Вам вбивали бездари на ПК. Они просто ищут как легче, потому как делать верно им не по силам. Пишите в один поток.
Прерывания в форме delay, как я помню, вроде как нельзя делать с этой библиотекой...
Нельзя. Ни прерывания в форме delay, ни рекурсию в форме volatile.
ЕвгенийП, и как тогда с этой библиотекой реализовать подобную задачу?)
Не знаю. Я эту библиотеку никогда не видел и в общем-то и видеть особо не хочу.