[an error occurred while processing this directive]
Ответ: это тебе пригодится в любом коммерческом проекте... Применительно к твоей задаче - если ты ничего не делаешь кроме чтения АЦП и расчета, то многозадачность тут действительно не нужна, ОДНАКО СИТУАЦИЯ МЕНЯЕТСЯ КОРЕННЫМ ОБРАЗОМ ЕСЛИ ТЕБЕ КРОМЕ ЭТОГО НУЖНО ДЕЛАТЬ ЕЩЕ ЧТО-ЛИБО, НАПРИМЕР ОТВЕЧАТЬ НА ЗАПРОСЫ ПО RS232...(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SOIC 02 апреля 2003 г. 14:01
В ответ на: Не могу придумать, где бы это могло пригодиться в моих программах. Например: у меня опрашивается АЦП каждую мс, сразу сохраняем выборку в прерывании, важно чтобы к следующему опросу результат был посчитан. И не нужно мне обсчитывать результат сразу - от выборки до выборки много времени. Что вытесняющая, что невытесняющая работать будут одинаково в моем случае. В результате - для меня вытесняющая намного хуже по всем позициям. отправлено M_S_P 02 апреля 2003 г. 13:13

Допустим время обработки запроса 1...2сек, а тебе нужно считывать АЦП 100 раз в секунду, а между оцифровками производить расчет...

когда призойдет событие инициирующее обработку запроса, произойдет следующее

1. процедура расчета прервется
2. процессор будет занят обработкой запроса
3. оцифровок в это время (1...2сек) либо не будет совсем, либо они будут (по прерываниям), но не будет расчета (т.к. расчет прерван задачей обработки запроса)

Обмануть начальников, сказав что на самом деле моя программа всегда читает и делает расчет с частотой 100 smp/s не выйдет, т.к. если запросы с компьютера будут следовать один за другим без пауз, то основная задача, которую решает твой контроллер ВООБЩЕ НЕ БУДЕТ РЕШАТЬСЯ, т.к. ей будет отводится 5...10 секунд в час в лучшем случае, таким образом получаем вместо 360000 выборок твоя прога с сальвой (или вообще без ядра - разницы никакой) будет читать максимум 1000 выборок.

Результат - без вытесняющей многозадачности потеря составит 99% важной информации...

При использовании uCOS потеря составит 0% за счет уменьшения времени реакции на запрос по RS232 (это не критично)...

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru