Поддерживает ли Arduino многопоточность?

Peter
Peter аватар
Offline
Зарегистрирован: 25.02.2012

 Поддерживает ли Arduino многопоточность?

leshak
Offline
Зарегистрирован: 29.09.2011

 Нет. 

Можно сделать только что "на глаз" будет выглядить как "одновременно". Но это уже зависит от умения того кто пишет код. В любом случае в каждый момент времени будет выполнятся только один кусочек кода.

Предвосхищая вопрос "как?". Общего рецепта нет. В каждом случае нужно сочинять финты ушами применительно к конкретной задаче.

IvanLis
Offline
Зарегистрирован: 09.10.2011

Peter пишет:
 Поддерживает ли Arduino многопоточность?

У нас стационарные компьютеры распараллеливать нормально не могут, хотя и не одно ядро имеют....

А вы хотите от букашки.

leshak
Offline
Зарегистрирован: 29.09.2011

 Да нет. На стационарнике как раз "нормально могут". Там есть поддержка на уровне железа. И с этим нет проблем. 

Проблемы возникают с разработкой паралельных алгоритмов, которые эту паралельность использовать могут эффективно и безопастно. То есть "узким местом" является скорее средства разработки, методологии и мозги программеров.

Вот тут  на форуме, некторые не могут, в голове, прокрутить loop, а что с ними будет если нужно представить взаимодействие во времени 30-ти потоков?

Peter
Peter аватар
Offline
Зарегистрирован: 25.02.2012

IvanLis пишет:

Peter пишет:
 Поддерживает ли Arduino многопоточность?

У нас стационарные компьютеры распараллеливать нормально не могут, хотя и не одно ядро имеют....

А вы хотите от букашки.

 

Lego NXT в среде RobotC  поддерживает многопоточность. И это очень иногда полезно...

leshak
Offline
Зарегистрирован: 29.09.2011

Что-то сильно сомневаюсь, что там есть реальная многопоточность. Поддерживаемая на уровне железа. Там же вроде 8-битный камушек?

Насколько я понимаю RobotC это интерпретатор. То есть многопоточность "псевдо". Настоящей "одновременности" там нет. Хотя согласен, с прикладной точки зрения и "псевдо" бывает очень даже кстати. Которая "на глаз" будет выглядить как "многозадачность".

Ну так несложный интерпретатор и на Arduino наваять можно, для конкретного случая. Есть для Atmel-а и свои реализации многозадачных "универсальных" OS we.easyelectronics.ru/os-rtos/urtos-sobytiynaya-operacionnaya-sistema-realnogo-vremeni-s-vytesnyayuschey-mnogozadachnostyu-dlya-mikrokontrollerov-avr.html

Вообщем "извратится и сделать видимость одновременности" - можно. Получить "честную" многопоточность - нет.

 

Warn
Offline
Зарегистрирован: 13.01.2012

программируешь без delay, и будет тебе многопоточность, в даташите на avr читал, что на переключение из цикла в цикл, ровно как и запуск цикла, тратится 4 такта,

18 миллионов тактов не так уж и мало, что-бы был вид многопоточности.

Peter
Peter аватар
Offline
Зарегистрирован: 25.02.2012

 То есть?

Привидите пожалуйста простейший пример.. Что имеется ввиду переключения из цикла в цикл?

 

source
source аватар
Offline
Зарегистрирован: 20.05.2012

тоже интересует этот вопрос

слышал, что библиотека для этого уже есть, но пока не искал ее

tsostik
Offline
Зарегистрирован: 28.02.2013