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

 
 
> Прерывания, для кого-то ну очень уж простые вопросы
Sneg_87
сообщение Oct 15 2009, 07:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Вот в прерываниях есть маска и флаг прерываний?
Для чего они нужны, в чем их отличия. При желании можно скинуть ссылку на общее (широкое) приедназначение этих регистров.
К примеру у AT90S2313 имеется 2 регистра маски прерываний GIMCK-общий регистр маски прерываний и TIMCK- регистр прерываний от тацмера/счетчика.


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BORIV
сообщение Oct 15 2009, 09:08
Сообщение #2


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

Группа: Участник
Сообщений: 131
Регистрация: 5-05-06
Пользователь №: 16 820



Флаги прерываний устанавливаются по событиям. Событий бывает много разных, как внутрених, так и внешних. Переполнение таймера, как Вы догадались, является внутренним событием и выставляет флаг прерывания по переполнению таймера. Если прерывание разрешено и если не установлены флаги с более высокими приоритетами, то управление будет передано на ячейку памяти, соответствующую этому прерыванию. По вектору прерывания с адресом ... .
Внешним событием может быть, например, изменение уровня на входе INT0 (или появление там единицы, как запрограммируете), что при соблюдении вышеперечисленных условий, приведёт к прерыванию программы, но уже по другому вектору. Перед прерыванием микроконтроллер запомнит в стеке адрес возврата и регистр состояния.
В ячейке памяти по вектору прерывания лежит команда, которая исполняется первой, при входе в прерывание.
Прерывания имеют приоритеты: прерывание с более высоким приоритетом, обслуживается в первую очередь и может прервать прерывание с более низким приоритетом. Можно или нет изменить приоритет прерывания, определяется конкретным контроллером. При выходе из прерывания микроконтроллер забирает из стека адрес возврата и состояние регистра состояния.
Вот вкратце и всё. Надеюсь, что заинтересовало.
Книжки читать всё равно придётся. rolleyes.gif
Go to the top of the page
 
+Quote Post
Diusha
сообщение Oct 16 2009, 03:00
Сообщение #3


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(BORIV @ Oct 15 2009, 12:08) *
Прерывания имеют приоритеты: прерывание с более высоким приоритетом, обслуживается в первую очередь и может прервать прерывание с более низким приоритетом.

Цитата(uriy @ Oct 15 2009, 18:22) *
Это справедливо если разрешены вложенные прерывания. В большинстве контроллеров вложенные прерывания по дефолту запрешены. Тогда следующее прерывание будет обслуживаться при выходе из текущего.

О чем вы? Речь идет об АВР! Там вложенные прерывания разрешаются установкой глобального флага разрешения прерываний (sei - на асм) в теле пп обр. прер. Начхать хотел АВР на приоритеты. Приоритеты играют роль, когда
а) >1 события (выз. прер.) происходят обновременно (маловероятно) или
б) >1 события произошли когда все прерывания были запрещены, а потом их разрешили (разрешили - sei или выход из пп прер.)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 15:12
Рейтинг@Mail.ru


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