Многозадачность и программирование в удивительном стиле
Отправлено
Mty1 13 августа 2009, г. 12:19
Пишу прогу под at90usb128 с использованием библиотеки USB от Atmel Эта библиотека устроена так, что планировщик в цикле while(1){ task1(); task2(); task3(); } Обрабатывает usb I/O и пользовательские задачи. Соответственно моя задача task3(); вызывается постоянно в цикле, и требует совершенно иного подхода, чем при классическом програмировании, когда операторы выполняются последовательно.
Например если я хочу получить из USB строку и обработать ее, я не могу "ждать" ввода в функции. Я должен получать символ и быстро "освобождать" процессор. Если ждать ввода - функции работы с USB никогда не выполняться, и я буду ждать вечно ;)
Думаю что велосипед давно изобретен, и соответствующие примеры программирования есть. Ткните плз где они, или в 2х словах опишите как это делается. Спасибо!