Какие приоритеты прерываний AVR микроконтроллеров?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение wellcom »

...Так как в МК существует много прерываний, у меня возник вопрос: Если во время обработки одного прерывания появиться еще хотя бы два, то какой из них выполниться первым? Прочитав несколько статей, я пришел в замешательство!!!! :shock: :o :?
......в этой статье http://decada.org.ru/project/lessons/bascom_avr/10/ автор пишет : "Все прерывания в AVR имеют одинаковый приоритет. Это отличает их от других микроконтроллеров, где вы можете задать приоритет для каждого вида прерывания по отношению к другому."
......в другой статье http://samou4ka.net/page/vneshnie-preryvanija-mk-avr, другой автор пишет "Чем выше адрес прерывания, тем ниже приоритет прерывания. Т.е. в очереди прерываний, прерывания с большим приоритетом будут выполняться раньше."
..Люди добрые, подскажите кто прав а кто нет!!! :dont_know:
:solder: 32-х ядерный процессор из П213В
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение pyzhman »

Читаем выдержку из даташита.
Вложения
priority.JPG
(106.24 КБ) 1553 скачивания
Docendo discimus
Реклама
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение МитяРа »

А чё, у AVR-а даже приоритеты прерываний нельзя настроить? :shock:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
totoro
Родился
Сообщения: 1
Зарегистрирован: Ср сен 15, 2010 23:03:42

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение totoro »

В Xmega появилась возможность настраивать приоритеты прерываний.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение МитяРа »

Угу.. Небось скоро и до реализации других "полезностей" дойдут.. :)
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение Леонид Иванович »

Здесь есть подмена понятий: приоритет прерывания, как способность прерывать выполнение обработчика с более низким приоритетом, и порядок обслуживания одновременно поступивших запросов. Порядок обслуживания у AVR действительно определяется адресом вектора. Но приоритет у всех прерываний одинаковый. Можно программно эмулировать приоритеты, если в нужных обработчиках разрешать вложенные прерывания.
Реклама
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение МитяРа »

Ничегонеработает писал(а):Можно программно эмулировать приоритеты
Как всё запущено.. :roll:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение РадиоЛоматель »

Ну так все нормально там: любое прерывание может "прервать" обработку текущего. Стек восьмиуровневый. Так что в сравнительно малый промежуток времени может сработать 8 прерываний. Ну а длительность промежутка определяется кривостью рук разработчика. Если нельзя прерывать обработку прерывания-то запрещаем прерывания глобально.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение МитяРа »

РадиоЛоматель писал(а):Стек восьмиуровневый. Так что в сравнительно малый промежуток времени может сработать 8 прерываний.
А если мя захочу внутри обработки что-то в стек "запихнуть"..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение РадиоЛоматель »

МитяРа писал(а):А если мя захочу внутри обработки что-то в стек "запихнуть"..
Для этого есть аж 30 регистров и оператива.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение pyzhman »

Не запущено, а заточено под конкретную вещь. В данном случае под дешевизну. И запущено по сравнению с чем? А, чего тут меряться... Всяк суслик в поле агроном. Каждый со своей колокольни. Ничегонеработает все ясно и толково объяснил по-русски.
РадиоЛоматель! Каково ч....! При запросе на прерывание глобальное разрешение сбрасывается, все, доступ остальным запрещен. Восстанавливается по RETI.
Docendo discimus
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение МитяРа »

pyzh_man писал(а):В данном случае под дешевизну.
Приветствую, пушистый..

Мя где-то читал, что архитектуру AVR придумали два студента после бочонка пива.. Куда уж там про обработку прерывания подумать..

P.S. Оффтопить больше не буду.. :facepalm:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение pyzhman »

Привет-привет. Отваливаем, возьмем по пивку и сбацаем что-либо. Мои извинения автору за наполнение ветки содержимым, к делу неотносящимся.
Docendo discimus
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение РадиоЛоматель »

pyzh_man писал(а):РадиоЛоматель! Каково ч....! При запросе на прерывание глобальное разрешение сбрасывается, все, доступ остальным запрещен. Восстанавливается по RETI.
pyzh_man, внимательно прочитайте последний абзац вашей вырезки из ДШ... Правда я действительно ошибся, прерывания надо наоборот разрешить, если необходимо. :)) Но все равно прерываться обработка прерывания может.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение pyzhman »

user...can write. Да неужели? :)
Docendo discimus
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение РадиоЛоматель »

При возникновении прерывания бит очищается, что запрещает прерывания. Пользовательская программа может записать логическую единицу в бит для того, чтобы включить вложенные прерывания. Тогда все последующие включенные прерывания могут прерывать текущую обработку прерывания. По возврату из прерывания бит автоматически устанавливается в единицу.
А в предидущем посте я написал, что ошибся про включить/выключить. Бывает, заскакивает что-то :))
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение GP1 »

МитяРа писал(а):
pyzh_man писал(а):В данном случае под дешевизну.
Приветствую, пушистый..

Мя где-то читал, что архитектуру AVR придумали два студента после бочонка пива.. Куда уж там про обработку прерывания подумать..

P.S. Оффтопить больше не буду.. :facepalm:
Мяу, МитяРа!
не знаю как АВР, а вот Мелкомягий начался с гаража, 4х студентов, 100 баксов на счету, ну и пива конечно, кудаж без него родимого :beer:
ЗЫ сорри за офтоп :oops:
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение ploop »

РадиоЛоматель писал(а): А в предидущем посте я написал, что ошибся про включить/выключить. Бывает, заскакивает что-то :))
А про 8 уровней? :)
Разрешив вложенные прерывания внутри друг друга, они так и будут сыпаться (при наступлении событий, разумеется), забивая стек адресами возврата. Примерно как возврат из подпрограммы через rjmp.
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение РадиоЛоматель »

ploop писал(а):А про 8 уровней? :)
Разрешив вложенные прерывания внутри друг друга, они так и будут сыпаться (при наступлении событий, разумеется), забивая стек адресами возврата. Примерно как возврат из подпрограммы через rjmp.
Ну так тут уже все зависит от того, насколько быстро эти прерывания обрабатываются. Конечно, если начать в прерывании от таймера, например принимать данные по юарту со скоростью 1200 бод, то все загнется (пример очень нехорошего поведения програмиста). А если в прерывании лишь инкрементировать регистр, устанавливать битик, или что-то подобное-то все будет нормально. Возврат то из самого прерывания по RETI а не RJMP, а значит и стек подчищается.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Какие приоритеты прерываний AVR микроконтроллеров?

Сообщение ploop »

А если в прерывании лишь инкрементировать регистр, устанавливать битик, или что-то подобное-то все будет нормально.
Тут смысл вложенных прерываний отпадает.

Хотя я так и не могу придумать пример, где бы они пригодились...
Закрыто

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