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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Объясните разницу между прерыванием по спадающему фронту и по появлению низкого уровня.
Боинг749
сообщение Sep 8 2008, 20:19
Сообщение #31


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

Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801



Цитата(ReAl @ Sep 9 2008, 00:04) *
Речь идёт также о том, что из этого не следует, что прерывания по уровню были придуманы для этого.

Я этого и не говорил. Я сказал о нюансах использования прерываний по уровню в AVR. Мы же о AVR говорим? Или я ошибаюсь?


Цитата(ReAl @ Sep 9 2008, 00:04) *
pin change - по любому перепаду.
Для PCINT немного изменили схему детектора перепада и она уже работает для побудки и без тактового сигнала.

Вот и ладненько. Спасибо за инфу. Просто я юзаю модели Мег, которые были разработаны более 3-х лет назад. Там такого не было.

Как говоритцо, "Век живи - век учись"(с)
smile.gif
Go to the top of the page
 
+Quote Post
ReAl
сообщение Sep 9 2008, 05:31
Сообщение #32


Нечётный пользователь.
******

Группа: Свой
Сообщений: 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 уже лет шесть существуют.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Tolyaha
сообщение Sep 9 2008, 05:53
Сообщение #33


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

Группа: Свой
Сообщений: 116
Регистрация: 2-03-07
Из: Украина
Пользователь №: 25 826



Цитата(Зверюга @ Sep 6 2008, 06:13) *
Можете привести практический пример ситуации, в которой этот режим полезен?


Это полезно тогда, когда МК может пропустить фронт/спад сигнала готовности от устройства и никогда его не обработать ( при включении питания, при сбросе).
Ситуация когда устройство обрабатывается по прерыванию и признаком его готовности является переход в лог. ноль. и если МК пропустил этот переход (по разным причинам) так устройство и будет висеть не обработанное вечно, а при прерывании по нулю зависа не будет т.к. прерывание будет висеть до тех пор пока устройство не будет обработано.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 9 2008, 07:14
Сообщение #34


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Tolyaha @ Sep 9 2008, 08:53) *
Ситуация когда устройство обрабатывается по прерыванию и признаком его готовности является переход в лог. ноль.
Я бы сказал так: Тогда и только тогда, когда процессор может сообщить устройству, что запрос обработан и этим заставить устройство снять запрос. Чаще всего это нужно, как уже писали, когда на один вход заведено несколько источников. Тогда запрос будет висеть до тех пор, пока процессор не обработает (и в процессе обработки не снимет) все запросы.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Guest_Цыкетчик_*
сообщение Sep 24 2008, 13:24
Сообщение #35





Guests






Недавно узнал, что оказывается прерывания процессора по сигналам на линиях INT можно сгенерировать и программно. Достаточно запрограммировать пины INTх на вывод и выставить на них '0' командой OUT
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 25 2008, 04:53
Сообщение #36


Полное ничтожество
*****

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



прерывания по уровню предназначены только для того чтобы процессор в любой ситуации знал что оно пришло и ему это грозит и предпринял действия чтобы его снять. при этом гарантировано что то устройство которое это дело выдаёт знает обработано его прерывание или нет.

а энергосбережение тут точно не причём)))
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 25 2008, 05:13
Сообщение #37


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Tolyaha @ Sep 9 2008, 09:53) *
Это полезно тогда, когда МК может пропустить фронт/спад сигнала готовности от устройства и никогда его не обработать ( при включении питания, при сбросе).
Ситуация когда устройство обрабатывается по прерыванию и признаком его готовности является переход в лог. ноль. и если МК пропустил этот переход (по разным причинам) так устройство и будет висеть не обработанное вечно, а при прерывании по нулю зависа не будет т.к. прерывание будет висеть до тех пор пока устройство не будет обработано.

Вот этот ответ самый близкий. Если в подпрограмме обработки прерываний сделан запрет на обработку прерываний более низкого уровня (неважно как сделан - аппаратно или программно), то фронт поступающий на запрос прерывания низкого уровня может быть пропущен. А вот уровень - нет.
Поэтому, для медленных систем, т.е в которых мало запросов и их пропуск не критичен, можно делать обработку по фронту, а для систем, где пропуск запроса критичен - только по уровню...
Но при этом, запрос по уровню может быть обслужен позже, чем по фронту из-за того, что он может быть задержен обработкой запросов более верхнего уровня.
Вот и вся разница. Такая система работает с первых интеловских контроллеров и до сих пор. Про DEC (Электроника 60) не пишу, там распределенный арбитр и пропустить прерывание в принципе невозможно....
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 25 2008, 06:17
Сообщение #38


Полное ничтожество
*****

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



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


ха если придёт несколько фронтов от одного устройства то и так потеряется несколько прерываний.

кстати если на один фход несколько прерываний то следующее может забить предыдущее. я в сигнальниках с этим сталкивался
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Sep 25 2008, 14:56
Сообщение #39


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

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



А у вас тут весело.Фронт,спад,уровень......Просто красота.А если взглянуть на процесс на осциллографе,а не в описании?Любому уровню ВСЕГДА предшествует перепад.Те говорить об срабатывании по низкому уровню и не вспомнить о предшествующему ему,уровню,срезу(спаду) сигнала неправильно. smile.gif Кстати высказывание тов БОИНГа о переходе из спячки по НИЗКОМУ уровню не совсем справедливо,можно также сказать о пробуждении по срезу и будет тоже правильно.
Go to the top of the page
 
+Quote Post

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

 


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


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