CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!
  
 

Small Simple Arduino Task Scheduler


Привет. Вот сидишь ты сейчас за компьютером и читаешь этот опус, а там у тебя параллельно музычка играет, торренты всякие качаются, что-то компилируется, картинки смотрятся, может что-то печатается на принтере… И все это одновременно :) Как же это происходит? Процессор то у нас в компьютере один. А это значит, что одновременно (в конкретный интервал времени) он может выполнять только одну задачу (Знаю, знаю я про существование многоядерных процессоров, но с ними отдельная песня). И, чтобы получить иллюзию «одновременности», все задачи выполняются поочередно небольшими «порциями», а «рулит» всем этим операционная система (ОС). Большинство современных операционных систем (Windows, Linux, OS X, Андроид-ы и т.п.) делают это незаметно для пользователя. При этом, если одна из программ-задач «подвиснет», то все остальные продолжают работать. Обычно в ОС выделяют два подхода к обеспечению многозадачности: вытесняющий и кооперативный. Вытесняющая ОС в состоянии отнять управление у текущей задачи в любой момент времени и передать его другой задаче. Например: появилась готовая к работе более приоритетная задача или текущая задача отработала свой квант времени. Кооперативная ОС — это вариант при котором следующая задача выполняется только после того, как текущая задача явно объявит себя готовой отдать процессорное время другим задачам.


( Читать дальше )

Вытесняющая многозадачность для Arduino

В этой статье мы рассмотрим простейшие функции для работы с контекстом процессов и напишем простое многопоточное приложение для Ардуино.

( Читать дальше )

Вытесняющая многозадачность для Arduino, том второй

В прошлый раз мы почти закончили библиотеку, добавляющую двухпоточность. Остался маленький штришок.

( Читать дальше )

Программирование Arduino/CraftDuino - Blink без delay


Разглядывая примеры в Arduino IDE, Вы, возможно, обратили внимание на скетч
BlinkWithoutDelay (Examples – Digital — BlinkWithoutDelay)

Этот скетч интересен тем, что он выполняет задачу включения/выключения светодиода без функции delay(). Это означает, что мы можем «одновременно» с миганием светодиода выполнять ещё какую-нибудь интересную задачу :)

Как же это реализовано? Как обычно – всё достаточно просто :)
Вместо обычного delay() используется millis(), которая, как мы помним, возвращает нам число миллисекунд, с момента исполнения Arduino/Freeduino текущей программы.


( Читать дальше )
  • +2
  • 11 декабря 2010, 14:11
  • admin
  • 5