Страница 1 из 1
Приоритеты прерываний
Добавлено: Пт фев 12, 2010 19:13:51
systemmind
Здравствуйте. Подскажите, можно ли изменять приоритеты прерываний в Атмегах? Мне надо, например, чтобы прерывание по TWI было более приоритетное чем прерывание по USART_Tx. Это возможно?
З.Ы. Можно конечно использовать вложенные прерывания, но как-то стремно..
Добавлено: Пт фев 12, 2010 21:01:31
Aheir
У них нет приоритетов и вложенности прерываний (настраиваемых). Только если программно извращаться.
Добавлено: Пт фев 12, 2010 21:58:27
Neekeetos
Aheir писал(а):У них нет приоритетов и вложенности прерываний.
Вообще то у любого авр есть приоритеты прерываний и они распределены так же как и вектора прерываний. Другой хороший вопрос- зачем автору понадобилось менять именно приоритет прерывания - ведь он влияет только на одну вещь - если два источника прерываний срабатывают в один и тот же процессорный такт то выбирается из них то прерывание у которого выше приоритет (то есть в авр выбирается тот вектор который имеет меньший адрес ), еще если за время выполнения обработчика накопилось несколько других прерываний тоже используется приоритет для выбора следующего обработчика. Соотв. и то и то маловероятные события. Возможно имеется в виду другое - требуется обеспечить гарантированную реакцию на какое либо нужное прерывание независимо от того находится ли мк в обработчике какого то другого. Значит требуется вложенное прерывание, такое можно сделать в аврке программно.
PS Кстати сказать на более сложных процессорах (имеющих вложенные прерывания) приоритет определяет может ли выполниться обработчик или нет - нужно чтобы он был больше чем у того обработчика прерывания который уже выполняется.
Добавлено: Пт фев 12, 2010 22:00:41
Aheir
Так вот именно, об этом и речь, встроенных аналогичных механизмов в AVR-классике, к сожалению, нет, а иногда очень хочется. Приоритет в таком виде, как его понимает Атмел как-то неудобно использовать.
Добавлено: Вс фев 14, 2010 17:44:26
FUZZY_
Вопрос в тему какой МК имеет арбитраж прерываний ?
Суть в том что до завершения обработчика прерывания с низшим приоритетом вызывается прерывание с высшим
(кроме PС конечно)
Добавлено: Вс фев 14, 2010 17:50:55
ARV
FUZZY_ писал(а):Вопрос в тему какой МК имеет арбитраж прерываний ?
Суть в том что до завершения обработчика прерывания с низшим приоритетом вызывается прерывание с высшим
(кроме PС конечно)
в семействе
MCS-51 изначально (т.е. еще лет 25 назад появилось) любому из векторов прерываний может быть назначен один из 2-х уровней приоритета, а в современных кристаллах этого семейства уровней может быть 4.
гибкость, которая пока и не снится AVR и PIC