Цитата(archi2000 @ Nov 14 2006, 18:29)

Хочу такое запрограммировать - программный одновибратор 100 мсек.
Начало.
Внешние прерывания запрещаем в регистре GICR.
Разрешаем прерывания от таймеров.
Разрешаем прерывания глобально.
Задержка 100 мсек.
Разрешаем внешние прерывания.
Если за эти 100 мсек внешие события были, то флаги int0 и int1 должны присутствовать и добавляем в теле прерывания к переменной единичку.
Запрещаем внешние прерывания.
Выполняем несколько комманд основной программы с проверкой различных условий.
Переходим на начало.
Так как в даташите написано, что флаг постоянно сбрасывается если прерывание по уровню, а я не хочу мгновенно это событие обрабатывать, то вот и не знаю будет ли этот алгоритм работать.
Где еще прочитать или ставить эксперименты?
Я не вижу проблем в Вашем алгоритме, но боюсь что не совсем понимаю его. Вы лучше опишите что хотите сделать, а мы предложим Вам варианты.
Можно в прерывании смотреть фронт а можно, например каждый раз менять фронт и по разному обрабатывать. Можно отложить обработку прерывания, только надо учесть, что при запрете прерывания флаг выставится только один раз. Остальные будут потеряны. Лучше, как предлагает, Dog Pawlowa прерывания обрабатывать всегда. А если Вы не хочете увеличивать объём вычислений в прерывании, то в прерывании только сохранять очередь. А обрабатывать эту очередь в голове.