|
Прерывания в Atmel 8535 |
|
|
|
Jun 3 2008, 20:48
|

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

|
У меня возникла парочка вопросов по прерываниям, смотрел в документации - не нашел. Если сможете - подскажите, пожалуйста. Как я понял из документации, при входе в обработчик прерывания все остальные прерывания запрещаются, ведь так? То есть неявно выполняется инструкция cli. А что происхоит в случае, если за время обработки происходит внешнее прерывание, INT0, к примеру? Информация о нем отбрасывается или остается где-то? Дело в том, что я пишу обработчик и мне надо знать было ли за время работы обработчика прерывание. Если было, то после выхода вызвать другой обработчик... И ещё вопрос: как я понял, приоритет у всех внешних прерываний одинаковый, ведь так? А назначить приоритет можно только программно, правда? Спасибо.
--------------------
Все будет хорошо! Я проверял!
|
|
|
|
|
 |
Ответов
|
Jun 3 2008, 21:17
|
Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Jun 6 2008, 12:23
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003

|
Цитата(Qwertty @ Jun 4 2008, 01:17)  Это произойдет само по себе. Сразу после выхода из текущего прерывания. Небольшое уточнение, насколько я знаю в контроллерах АВР есть два типа прерываний: 1 флаги которых защелкиваются, после возникновения причин прерываний и сбрасываются либо после перехода по вектору соответствующего прерывания либо программно 2. прерывания, флаги которых действуют только когда присуствтует причина прерываний (по-моему как раз ИНТ0 можно настроить в режим когда флаг прерывания действуе пока на входе соответствующий лог уровень)
|
|
|
|
|
Jun 6 2008, 20:01
|

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

|
Цитата(smac @ Jun 6 2008, 16:23)  ... в контроллерах АВР есть два типа прерываний: 1 флаги которых защелкиваются, после возникновения причин прерываний и сбрасываются либо после перехода по вектору соответствующего прерывания либо программно 2. прерывания, флаги которых действуют только когда присуствтует причина прерываний (по-моему как раз ИНТ0 можно настроить в режим когда флаг прерывания действуе пока на входе соответствующий лог уровень) Есть ещё флаги которые снимаются только по условию выполнения каких либо действий. Например флаг UART RTX снимается только если произвести выборку из регистра принятых данных UDR
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|