Что-то больно сложно. Я при входе в прерывание просто разрешаю общие прерывания, получается все автоматом.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Михаил Е.
20 мая 2004 г. 16:40
В ответ на:
Оно в ATMEGA одно - запрет прерываний при входе в любой вектор. Поэтому, если хочешь приоритетов надо сложную хрень писать - запомнить все текущие настройки прерываний, разрешить те которые тебе надо, не забыть всё восстановить и т.д. и т.п. Выделять таким образом 1-2 прерывания с повышенным приоритетом можно, больше - да ну его на ..
отправлено AU 20 мая 2004 г. 16:25
Составить ответ
|||
Конференция
|||
Архив
Ответы
Правда без приоритетов, но вложенность - пожалуйста.
—
Михаил Е.
(20.05.2004 16:42,
пустое
)
т.е. просто дать команду SEI и надеяться на лучшее?
—
bialix
(20.05.2004 16:57,
пустое
)
Не совсем, еще надо запретить то прерывание, в котором ты это делаешь, то бишь текущее. Что случайно в него еще раз не ввалиться =)))
—
ShiphT
(20.05.2004 17:22,
пустое
)
Неправда ваша, это аппаратно делается.
—
Михаил Е.
(20.05.2004 17:50,
пустое
)
Вообще то не все. Например RXC сбрасывается только после чтения UDR.
—
Уэф
(20.05.2004 18:33,
пустое
)
Ой сомневаюсь... Нигде не встречал. Речь только о глобальных везде вроде как.
—
ShiphT
(20.05.2004 17:58,
пустое
)
Это тут ->
—
Михаил Е.
(20.05.2004 18:02,
пустое
,
ссылка
)
Та тоже нигде не написано что текущее прерывание запрещается. Только бит Global Interrupt Enable
—
ShiphT
(20.05.2004 18:06,
пустое
)
Если же речь идет о (+)
—
ShiphT
(20.05.2004 18:09, 166 байт)
Это не дает повторно уйти в одно и то же прерывание. Разьве этого не достаточно?
—
Михаил Е.
(20.05.2004 18:21,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru