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

 
 
 
Reply to this topicStart new topic
> Приоритет прерываний
777777
сообщение Nov 21 2007, 07:05
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Всю жизнь считал, что INT0 имеет наивысший приоритет, но вот выяснилось что это не так. Т.е. если контроллер находится в обработке какого-либо другого прерывания, то INT0 его прервать не может, в результате информация теряется. Пришлось принудительно ставить PX0. Это так и должно быть или это особенности именно нашего процессора?
Go to the top of the page
 
+Quote Post
vmp
сообщение Nov 21 2007, 07:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Это у всех стандартных 51-х.
Приоритеты начинают играть роль только в тот момент, когда процессор решает, какое из одновременно возникших прерываний обслужить.
Такая ситуация может возникнуть не только при одновременном приходе запросов на прерывание, но и при их последовательном поступлении, когда процессор не готов их обслуживать. Возможная причина такой ситуации - запрещенные прерывания или обработка предыдущего прерывания.
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 21 2007, 11:13
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(vmp @ Nov 21 2007, 11:38) *
Это у всех стандартных 51-х.
Приоритеты начинают играть роль только в тот момент, когда процессор решает, какое из одновременно возникших прерываний обслужить.
Такая ситуация может возникнуть не только при одновременном приходе запросов на прерывание, но и при их последовательном поступлении, когда процессор не готов их обслуживать. Возможная причина такой ситуации - запрещенные прерывания или обработка предыдущего прерывания.

Это понятно, но я почему-то был уверен, что INT0 и так является наиболее приоритетным. Оказалось - нет.
Go to the top of the page
 
+Quote Post
oran-be
сообщение Nov 21 2007, 15:31
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621



Вы, похоже путаете приоритет прерывания с порядком опроса источников прерываний. В каждом рабочем цикле контроллер прерываний опрашивает входы прерыванийй, начиная с ИНТ0. Но это не является приоритетом прерываний. Приоритеты прерывний необходимо специально настраивать. По умолчанию все прерывания находяться на низком уровне приоритета. если вы хотите, чтобы некое прерываение имело возможность прерывать другое, необходимо задать ему более высокий приоритет. Следует учесть. что время входа в прерывание в этом случае может возрасти.
Go to the top of the page
 
+Quote Post

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

 


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


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