Это моё личное предвзятое мнение. Любое совпадение с реальностью является случайным и непреднамеренным.
-
- Придётся запрещать, да (это если про АВР, для других МК запрет может и не понадобится). То что в ручную, это ничего, мелочи. Лучше спокойного main тем, что реакция может быть очень быстрой. - Apтём(30.10.2014 13:15)
- Ну не знаю, я уже и так и этак показываю, что реакция будет медленнее, и всё не в коня корм. - =AlexD=(30.10.2014 13:26)
- Стоп. Мы о разном говорим. Есть big loop, из которого вызывается куча задач. Каждая задача при входе проверяет флаг, надо ли что-то делать. Если эту задачу повесить на обработчик софтверно-инициируемого прерывания, то ей не придется ждать, пока lightelf(24 знак., 30.10.2014 19:10)
- Т.е. весь сыр-бор ради одной единственной задачи из множества? Что это за задача такая, почему её нужно обрабатывать вне очереди, и при этом выносить из прерывания, которое её инициирует? - =AlexD=(31.10.2014 07:50)
- Задач может быть и несколько. Выполнение может быть длинным, возникать не на каждое прерывание, но требовать немедленной обработки. Например принимаются данные с АЦП, если значение превысило некий порог, то немедленно запускаем длинную процедуру lightelf(142 знак., 31.10.2014 13:24)
- Я правильно понимаю, что на время калибровки АЦП биглуп и его задачи просто умирают? - =AlexD=(31.10.2014 14:49)
- Да. А вот прерывания (в том числе следующие отсчеты АЦП) продолжают отрабатываться. В вытесняющей многозадачке можно было бы запулить поток с максимальным приоритетом, но вот в биглупе не все так однозначно. - lightelf(31.10.2014 16:22)
- Я правильно понимаю, что на время калибровки АЦП биглуп и его задачи просто умирают? - =AlexD=(31.10.2014 14:49)
- Задач может быть и несколько. Выполнение может быть длинным, возникать не на каждое прерывание, но требовать немедленной обработки. Например принимаются данные с АЦП, если значение превысило некий порог, то немедленно запускаем длинную процедуру lightelf(142 знак., 31.10.2014 13:24)
- Т.е. весь сыр-бор ради одной единственной задачи из множества? Что это за задача такая, почему её нужно обрабатывать вне очереди, и при этом выносить из прерывания, которое её инициирует? - =AlexD=(31.10.2014 07:50)
- Когда до main дойдёт - вообще непресказуемо. С помощью софтовых прерываний можно сделать систему в которой нужные прерывания будут всегда готовы к исполнению. И переключить на задачу rtos всяко быстрее чем до main дойдёт. - Apтём(30.10.2014 13:46)
- Стоп. Мы о разном говорим. Есть big loop, из которого вызывается куча задач. Каждая задача при входе проверяет флаг, надо ли что-то делать. Если эту задачу повесить на обработчик софтверно-инициируемого прерывания, то ей не придется ждать, пока lightelf(24 знак., 30.10.2014 19:10)
- Ну не знаю, я уже и так и этак показываю, что реакция будет медленнее, и всё не в коня корм. - =AlexD=(30.10.2014 13:26)
- Придётся запрещать, да (это если про АВР, для других МК запрет может и не понадобится). То что в ручную, это ничего, мелочи. Лучше спокойного main тем, что реакция может быть очень быстрой. - Apтём(30.10.2014 13:15)