Да, нужен достаточно быстрый способ. Но при чем тут МК? Достаточно
быстрый - это всегда пропорционально производительности МК, т.е.
некое максимальное число тактов. Если на XMEGA@32MHz прерывание
UART занимает 2.5мкс, то на AT32F@240MHz я, естественно, хочу его
уложить в 350-400нс, и т.д. В среднем получается порядка 25нс на
С-строку. Но попалась библиотечная команда, жравшая 600нс. Пришлось
вынести её из основного рантайма в инициализацию и сохранить
результат в глобальной структуре... Тут тоже, 100-150нс раз в 10сек могу себе позволить, а больше уже напрягает. Если МК поддерживает динамические приоритеты прерываний, то напрягает меньше. Но тут вам не там.