Цитата(DpInRock @ Dec 11 2009, 17:44)

Если внутри обработчика прерывания возникают события, которые должны обрабатываться этим же обработчиком, и нет паузы между этими событиями, то вы неверно спроектировали алгоритм или систему. (Т.е. обработчик в принципе не успевает обрабатывать).
Речь идет о pin-change 4-х source'ов. Допустим есть такие теоретические параметры:
- частота источника всегда одинакова и равна 1kHz (интервал между событиями 1000us).
- время выполнения обработчика для одного source в худшем случае равна 100us.
Для 4-х источников Система с четырьмя отдельными обработчиками, будет загружена всего на (4 * 100us / 1000us) * 100% = 40%.
Теперь переложим эту гипотетическую задачу на железо автора ветки. Проблема состоит в том, что здесь нет отдельных IRQ для каждого источника, а имеется один общий INT на все четыре события. События асинхронны - друг от друга не зависят. Соответвенно событие №4 может произойти как раз тогда когда обслуживается одно из событий 1-3.
Будут ли возникать события, которые должны обработаться тем же обработчиком - конечно будут (т.к. IRQ общий для всех событий, а события асинхронны).
Можно ли при этом говорить, что система спроетирована неверно?
Цитата
Потому что это регистры.
Вы Редькина начитались? Какие еще регистры. Я говорю о переменных dummy и status.