Цитата(_artem_ @ Apr 20 2007, 00:32)

Я бы блокировал прерывания прежде чем проверять очередь на наличие задачи, а не проверять результат после того как фунцкия выбрана из очереди
Резонно.
Цитата
, а дребезг подавлял бы до того как он сгенерирует событие. имхо.
Дребезг теперь сам-собой подавляется, из-за этих условий:
- два одинаковых события в очереди находиться не могут,
- время до запуска события - 20ms с момента попадания в очередь.
тобиш если приходит неожидаемое второе событие вызванное дребезгом - старое удалится - новое добавится, в очереди останется только одно такое событие.
Цитата
Один вопрос - а Вы используете Ilock из прерывания ? Если нет то зачем статус регистр запоминать? Вроде бы Set_Callback для того чтобы запускать тасковые функции после прерывания.
Некоторые функции, например запись в eeprom, могут выполняться как в обработчиках прерываний так и вне, в них требуется запрещать прерывания. ILock/Unlock у меня сделаны так чтобы не задумываться где я сейчас нахожусь. Думаю они себя оправдывают, 1 команда (in rr, sreg) не велика цена за универсальность.