Свежие обсуждения
Микроконтроллеры

Прерывания 8051

Возникло несколько вопросов.

1) Может ли выполнение одного прерывания прерваться более приоритетным прерыванием?
2) Можно ли отложить все прерывания на время. Например на время пересылки большого обьема информации от внешнего устройства и т.д.? Что будет с "пропущенными" прерываниями?

МК - AT89C51SND1.

 

1.Естественно прерывается более приоритетным.
2.Можно запретить все прерывания, сбросив на время бит IE.7
Пропущенные.. они и есть пропущенные....
Но если запросы были в момент запрета прерывания, то после разр.прер (уст. IE.7) все они будут обслужены в соответствии с заданными (регистр IP) приоритетами.
Разумеется если какая-нибудь программа во время запрета прерываний эти
биты не сбросит..
Вообще в системе 8051 все просто и логично.
Это тот случай: "Где временем уют отполирован"

 

Спасибо. Еще вопрос, как много прерываний может стоять в очереди? Что происходит, если одно и то же прерывание происходит второй раз до обработки первого? Т.е. если в очереди уже стоит прерывание, например от клавиатуры, и оно еще раз происходит?

 

Фиксация события/потребности прерываний происходят триггерами.
При обработке прерывания соответствующий триггер сбрасывается (для некоторых "сам" а для других надо в прерывании это делать програмно).

Например пришел символ с клавы вызывается прерывание..чтобы символ пережевать... Если еще один пришел,- так он подождет. А если поток больше возможностей обработки так побыстрей контроллер бери...

 

Спасибо. Вроде разобрался.