Приоритеты прерываний

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 13
Зарегистрирован: Сб апр 25, 2009 07:55:58

Сообщение systemmind »

Здравствуйте. Подскажите, можно ли изменять приоритеты прерываний в Атмегах? Мне надо, например, чтобы прерывание по TWI было более приоритетное чем прерывание по USART_Tx. Это возможно?

З.Ы. Можно конечно использовать вложенные прерывания, но как-то стремно..
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

У них нет приоритетов и вложенности прерываний (настраиваемых). Только если программно извращаться.
Последний раз редактировалось Aheir Сб фев 13, 2010 11:43:32, всего редактировалось 1 раз.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

Aheir писал(а):У них нет приоритетов и вложенности прерываний.
Вообще то у любого авр есть приоритеты прерываний и они распределены так же как и вектора прерываний. Другой хороший вопрос- зачем автору понадобилось менять именно приоритет прерывания - ведь он влияет только на одну вещь - если два источника прерываний срабатывают в один и тот же процессорный такт то выбирается из них то прерывание у которого выше приоритет (то есть в авр выбирается тот вектор который имеет меньший адрес ), еще если за время выполнения обработчика накопилось несколько других прерываний тоже используется приоритет для выбора следующего обработчика. Соотв. и то и то маловероятные события. Возможно имеется в виду другое - требуется обеспечить гарантированную реакцию на какое либо нужное прерывание независимо от того находится ли мк в обработчике какого то другого. Значит требуется вложенное прерывание, такое можно сделать в аврке программно.

PS Кстати сказать на более сложных процессорах (имеющих вложенные прерывания) приоритет определяет может ли выполниться обработчик или нет - нужно чтобы он был больше чем у того обработчика прерывания который уже выполняется.
Последний раз редактировалось Neekeetos Пт фев 12, 2010 22:02:48, всего редактировалось 1 раз.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Так вот именно, об этом и речь, встроенных аналогичных механизмов в AVR-классике, к сожалению, нет, а иногда очень хочется. Приоритет в таком виде, как его понимает Атмел как-то неудобно использовать.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Вопрос в тему какой МК имеет арбитраж прерываний ?

Суть в том что до завершения обработчика прерывания с низшим приоритетом вызывается прерывание с высшим
(кроме PС конечно)
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

FUZZY_ писал(а):Вопрос в тему какой МК имеет арбитраж прерываний ?

Суть в том что до завершения обработчика прерывания с низшим приоритетом вызывается прерывание с высшим
(кроме PС конечно)
в семействе MCS-51 изначально (т.е. еще лет 25 назад появилось) любому из векторов прерываний может быть назначен один из 2-х уровней приоритета, а в современных кристаллах этого семейства уровней может быть 4.
гибкость, которая пока и не снится AVR и PIC
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»