Error404, хорошо, продолжу ныть
Ты знаком с системой прерываний СТМ32, в особенности - прерываний по внешнему фронту?
Вкратце, там контроллер прерываний настолько совершенен, что убиться можно.
Там нет такого понятия как на AVR, что прерывание любого пина порта вызовет предсказуемое одно-единственное прерывание. На Меге48 так и происходит, в обработке просто читаешь значение с этого порта и тупо берешь значение из матрицы состояний и выплевываешь в другой порт. Всё, задача выполнена. Разумеется, на ассемблере, да. Правда, говорят что и на С можно успеть.
На асме я делал.
В СТМ32 в каждом порту 16 пинов. Прерывания по фронту разделены на группы. Одна группа щупает пины с 0 по 3, причем - по всем портам, а не по одному.
Вторая группа слушает пины 4. третья - пины пять... Последняя - пины с 10 по 15.
Если тебе надо "слушать" с 0 по 7, к примеру, то уже точек выхода на прерывание будет куча. Далее, нужно "вычленить" из порта нужный байт. Дальше матрица, как обычно, затем упихнуть данные в кусок порта I/O.
Причем, код пишется на Си...