ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
26 июня
233583 Топик полностью
koyodza (14.01.2011 20:10, просмотров: 105) ответил MegaJohn на угу, то есть думаю так: нафиг эти прерывания, еще засядешь с обработкой где-нибудь неподетски. А так задачи следят за установкой соответсующих флагов, и обрабатывают. И по вышеизложенной схеме так распределяем задачи, что ничто нигде не потеряется.
а смысл задачам давать фиксированное время? У меня все "задачи" организованы как конечные автоматы, по возможности их время выполнения минимизировано, т.е. внутри никаких ожиданий и минимум циклов. Ну а в main есть просто бесконечный while, в котором эти все "задачи" вызываются по очереди. При вызове "задачи" в неё передаётся текущее время (системный тик), разбор кому когда что выполнять делается внутри "задач". Результат - среднее время переключения задач получаем минимально возможным, ну а за максимальным следим при отладке "задач", чтобы оно не превышало требуемого. Также практически забыта проблема атомарности доступа, поскольку задачи всегда переключаются во вполне определённом месте, а в прерываниях устанавливаются в основном только флаги (семафоры), и те данные, которым семафоры позволяют