два прерывания одновременно?

lobzik
Offline
Зарегистрирован: 21.08.2013

Здравствуйте. Не совсем уверен, что пишу в правильный форум, ибо вопрос мой где-то на стыке аппаратной и программной части.

В общем, одно устройство (фазоимпульсный регулятор) на ардуино у меня сильно требовательно к таймингам, потому всё в прерываниях. В частности, есть пара таймеров и три прерывания от внешних импульсов. Пока я лично с этим не столкнулся, но уже предвкушаю ситуацию, когда таймер и прерывание от внешнего импульса произойдут одновременно. То есть совсем одновременно, с интервалом меньшим, чем такт процессора. Что тогда случится? Выполнятся оба обработчика последовательно, один случайный или ни один вовсе?

А если несколько иная ситуация: допустим, в обработчике таймера у меня что-то медленное, ну вот считывание с АЦП, допустим.  И пока оно работает, приходит импульс и дёргает другое прерывание - что тогда?

carduino.ru
Offline
Зарегистрирован: 06.12.2011

При срабатывании устанавливается флаг прерывания и не важно сколько у Вас прерываний, у каждого прерывания свой флаг

при выходе з первого обработчика произойдет переход на следующий обработчик и т.д.

Про приоритеты не помню

lobzik
Offline
Зарегистрирован: 21.08.2013

Спасибо, приоритеты погуглю, теперь, по крайней мере, ясно, что гуглить :)