реклама на сайте
подробности

 
 
> Прерывания в Atmel 8535
DMD
сообщение Jun 3 2008, 20:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 19-02-08
Пользователь №: 35 166



У меня возникла парочка вопросов по прерываниям, смотрел в документации - не нашел. Если сможете - подскажите, пожалуйста.
Как я понял из документации, при входе в обработчик прерывания все остальные прерывания запрещаются, ведь так? То есть неявно выполняется инструкция cli. А что происхоит в случае, если за время обработки происходит внешнее прерывание, INT0, к примеру? Информация о нем отбрасывается или остается где-то? Дело в том, что я пишу обработчик и мне надо знать было ли за время работы обработчика прерывание. Если было, то после выхода вызвать другой обработчик...
И ещё вопрос: как я понял, приоритет у всех внешних прерываний одинаковый, ведь так? А назначить приоритет можно только программно, правда?
Спасибо.


--------------------
Все будет хорошо! Я проверял!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Qwertty
сообщение Jun 3 2008, 21:17
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(DMD @ Jun 4 2008, 00:48) *
Если было, то после выхода вызвать другой обработчик...

Это произойдет само по себе. Сразу после выхода из текущего прерывания.

Цитата(DMD @ Jun 4 2008, 00:48) *
И ещё вопрос: как я понял, приоритет у всех внешних прерываний одинаковый, ведь так? А назначить приоритет можно только программно, правда?
Спасибо.

Приоритетов в АВР нет. Есть псевдоприоритеты - если два прерывания произойдут одновременно, то первым будет обработано то, адрес вектора у которого меньше. Возможно правда сделать вложенные прерывания - вставить sei в обработчик.

Сообщение отредактировал Qwertty - Jun 3 2008, 21:18
Go to the top of the page
 
+Quote Post
smac
сообщение Jun 6 2008, 12:23
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Цитата(Qwertty @ Jun 4 2008, 01:17) *
Это произойдет само по себе. Сразу после выхода из текущего прерывания.

Небольшое уточнение, насколько я знаю в контроллерах АВР есть два типа прерываний:
1 флаги которых защелкиваются, после возникновения причин прерываний и сбрасываются либо после перехода по вектору соответствующего прерывания либо программно
2. прерывания, флаги которых действуют только когда присуствтует причина прерываний (по-моему как раз ИНТ0 можно настроить в режим когда флаг прерывания действуе пока на входе соответствующий лог уровень)
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 6 2008, 20:01
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата(smac @ Jun 6 2008, 16:23) *
... в контроллерах АВР есть два типа прерываний:
1 флаги которых защелкиваются, после возникновения причин прерываний и сбрасываются либо после перехода по вектору соответствующего прерывания либо программно
2. прерывания, флаги которых действуют только когда присуствтует причина прерываний (по-моему как раз ИНТ0 можно настроить в режим когда флаг прерывания действуе пока на входе соответствующий лог уровень)

Есть ещё флаги которые снимаются только по условию выполнения каких либо действий.
Например флаг UART RTX снимается только если произвести выборку из регистра принятых данных UDR
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DMD   Прерывания в Atmel 8535   Jun 3 2008, 20:48
|- - 777777   Цитата(Qwertty @ Jun 4 2008, 01:17) Возмо...   Jun 7 2008, 04:00
|- - artemm   Цитата(Qwertty @ Jun 4 2008, 00:17) Возмо...   Jun 9 2008, 05:56
|- - Maik-vs   Цитата(artemm @ Jun 9 2008, 09:56) Если р...   Jun 9 2008, 09:31
|- - alx2   Цитата(artemm @ Jun 9 2008, 10:56) Если р...   Jun 9 2008, 20:28
- - DMD   А есть возможность как-нибудь очистить вот эту оче...   Jun 3 2008, 22:24
|- - dENIM   Цитата(DMD @ Jun 4 2008, 01:24) А есть во...   Jun 3 2008, 23:27
|- - zhevak   Цитата(DMD @ Jun 4 2008, 04:24) А есть во...   Jun 6 2008, 06:11
|- - 777777   Цитата(zhevak @ Jun 6 2008, 10:11) Возвра...   Jun 7 2008, 07:52
|- - zhevak   Цитата(777777 @ Jun 7 2008, 13:52) Возвра...   Jun 7 2008, 10:38
|- - 777777   Цитата(zhevak @ Jun 7 2008, 14:38) Я не в...   Jun 9 2008, 04:29
||- - zhevak   Цитата(777777 @ Jun 9 2008, 10:29) Пробле...   Jun 9 2008, 06:43
|- - defunct   Цитата(zhevak @ Jun 7 2008, 13:38) Да, по...   Jun 9 2008, 11:42
|- - Maik-vs   Цитата(defunct @ Jun 9 2008, 15:42) И буд...   Jun 10 2008, 12:39
|- - defunct   Цитата(Maik-vs @ Jun 10 2008, 15:39)...   Jun 10 2008, 14:22
|- - galjoen   Цитата(defunct @ Jun 10 2008, 18:22) На а...   Jun 10 2008, 15:17
||- - 777777   Цитата(galjoen @ Jun 10 2008, 19:17) А я ...   Jun 11 2008, 05:51
||- - galjoen   Цитата(777777 @ Jun 11 2008, 09:51) Вмест...   Jun 11 2008, 14:56
|- - Maik-vs   Вот оно, ключевое слово: Цитата(defunct @ Jun...   Jun 12 2008, 11:11
|- - defunct   Цитата(Maik-vs @ Jun 12 2008, 14:11)...   Jun 12 2008, 18:49
||- - sKWO   Цитата(defunct @ Jun 12 2008, 22:49) Если...   Jun 13 2008, 10:42
||- - Maik-vs   Цитата(defunct @ Jun 12 2008, 22:49) Если...   Jun 14 2008, 18:52
|- - sKWO   Цитата(Maik-vs @ Jun 12 2008, 15:11)...   Jun 15 2008, 09:05
- - 733259   ЦитатаДело в том, что я пишу обработчик и мне надо...   Jun 13 2008, 18:09
- - 733259   Не по теме, но не удержался Кодregister uint8_t ...   Jun 15 2008, 09:42


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th August 2025 - 17:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01414 секунд с 7
ELECTRONIX ©2004-2016