|
Объясните разницу между прерыванием по спадающему фронту и по появлению низкого уровня. |
|
|
|
Sep 8 2008, 20:19
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(ReAl @ Sep 9 2008, 00:04)  Речь идёт также о том, что из этого не следует, что прерывания по уровню были придуманы для этого. Я этого и не говорил. Я сказал о нюансах использования прерываний по уровню в AVR. Мы же о AVR говорим? Или я ошибаюсь? Цитата(ReAl @ Sep 9 2008, 00:04)  pin change - по любому перепаду. Для PCINT немного изменили схему детектора перепада и она уже работает для побудки и без тактового сигнала. Вот и ладненько. Спасибо за инфу. Просто я юзаю модели Мег, которые были разработаны более 3-х лет назад. Там такого не было. Как говоритцо, "Век живи - век учись"(с)
|
|
|
|
|
Sep 9 2008, 05:31
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Боинг749 @ Sep 8 2008, 23:19)  Я этого и не говорил. Я сказал о нюансах использования прерываний по уровню в AVR. Мы же о AVR говорим? Или я ошибаюсь? Мы говорим об особенностях работы прерывания по уровню при постоянно поданном запросе, с 8-го поста - о "первоначальном" предназначении прерываний по уровню, которое "первоначалось" через десятки лет после того, как сами эти прерывания были придуманы. В принципе, всё вышесказанное справедливо и для i80c31. Цитата(Боинг749 @ Sep 8 2008, 23:19)  Вот и ладненько. Спасибо за инфу. Просто я юзаю модели Мег, которые были разработаны более 3-х лет назад. Там такого не было. "мухи времени любят стрелки" :-) Думаю, гораздо больше трёх. avreal поддерживает программирование atmega48-168 уже больше четырёх лет. Ну а если об AVR вообще, то тини26, мега162 уже лет шесть существуют.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Sep 9 2008, 05:53
|
Частый гость
 
Группа: Свой
Сообщений: 116
Регистрация: 2-03-07
Из: Украина
Пользователь №: 25 826

|
Цитата(Зверюга @ Sep 6 2008, 06:13)  Можете привести практический пример ситуации, в которой этот режим полезен? Это полезно тогда, когда МК может пропустить фронт/спад сигнала готовности от устройства и никогда его не обработать ( при включении питания, при сбросе). Ситуация когда устройство обрабатывается по прерыванию и признаком его готовности является переход в лог. ноль. и если МК пропустил этот переход (по разным причинам) так устройство и будет висеть не обработанное вечно, а при прерывании по нулю зависа не будет т.к. прерывание будет висеть до тех пор пока устройство не будет обработано.
|
|
|
|
Guest_Цыкетчик_*
|
Sep 24 2008, 13:24
|
Guests

|
Недавно узнал, что оказывается прерывания процессора по сигналам на линиях INT можно сгенерировать и программно. Достаточно запрограммировать пины INTх на вывод и выставить на них '0' командой OUT
|
|
|
|
|
Sep 25 2008, 05:13
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Tolyaha @ Sep 9 2008, 09:53)  Это полезно тогда, когда МК может пропустить фронт/спад сигнала готовности от устройства и никогда его не обработать ( при включении питания, при сбросе). Ситуация когда устройство обрабатывается по прерыванию и признаком его готовности является переход в лог. ноль. и если МК пропустил этот переход (по разным причинам) так устройство и будет висеть не обработанное вечно, а при прерывании по нулю зависа не будет т.к. прерывание будет висеть до тех пор пока устройство не будет обработано. Вот этот ответ самый близкий. Если в подпрограмме обработки прерываний сделан запрет на обработку прерываний более низкого уровня (неважно как сделан - аппаратно или программно), то фронт поступающий на запрос прерывания низкого уровня может быть пропущен. А вот уровень - нет. Поэтому, для медленных систем, т.е в которых мало запросов и их пропуск не критичен, можно делать обработку по фронту, а для систем, где пропуск запроса критичен - только по уровню... Но при этом, запрос по уровню может быть обслужен позже, чем по фронту из-за того, что он может быть задержен обработкой запросов более верхнего уровня. Вот и вся разница. Такая система работает с первых интеловских контроллеров и до сих пор. Про DEC (Электроника 60) не пишу, там распределенный арбитр и пропустить прерывание в принципе невозможно.... Удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Sep 25 2008, 06:17
|

Полное ничтожество
    
Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354

|
Цитата(iosifk @ Sep 25 2008, 09:13)  Вот этот ответ самый близкий. Если в подпрограмме обработки прерываний сделан запрет на обработку прерываний более низкого уровня (неважно как сделан - аппаратно или программно), то фронт поступающий на запрос прерывания низкого уровня может быть пропущен. А вот уровень - нет. Поэтому, для медленных систем, т.е в которых мало запросов и их пропуск не критичен, можно делать обработку по фронту, а для систем, где пропуск запроса критичен - только по уровню... Но при этом, запрос по уровню может быть обслужен позже, чем по фронту из-за того, что он может быть задержен обработкой запросов более верхнего уровня. Вот и вся разница. Такая система работает с первых интеловских контроллеров и до сих пор. Про DEC (Электроника 60) не пишу, там распределенный арбитр и пропустить прерывание в принципе невозможно.... Удачи! ха если придёт несколько фронтов от одного устройства то и так потеряется несколько прерываний. кстати если на один фход несколько прерываний то следующее может забить предыдущее. я в сигнальниках с этим сталкивался
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|