koyodza (07.02.2011 20:15, просмотров: 207) ответил mazur на Не раз читал, что не следует вызывать подпрограммы в прерываниях. Ну а если требуется? Не писать же один и тот же код два раза, один как подпрограмма, второй как обработчик прерывания... Подумываю о варианте с подстановкой байт-кода в прерывание.
тут несколько моментов самое главное: обычно нормой считается, когда все прерывания выполняются за максимально короткое время, т.е. в прерываниях делается минимум вычислений и прочих действий, никаких задержек и только очень короткие циклы при острой необходимости. Всё, что можно отложить, выполняется в main, а прерывания только устанавливают флажки, с помощью которых указывают что именно нужно сделать.
Вызов подпрограммы из прерывания - это сохранение стека, как минимум, плюс сам вызов и возврат. Это увеличивает время.
На некоторых МК (например, на 51) вызов функции и из прерывания, и вне прерывания, требует отдельного "утомительного застирывания", но у АВР и АРМ такого нет