IRQ/К555ИД4

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
В каком диапазоне лежит допустимач длительность удержания картой линии IRQ ?
Какова таблица истинности К555ИД4 ? В справочнике не нашёл...



Re: IRQ/К555ИД4
Hello, Alexander!

 AD>     Хочешь чтобы гарантировано работало? Удерживай её до тех пор, пока
 AD> есть условия для запроса.

Т.е. хоть целую секунду ?

 AD>  После обслуживания драйвером железо должно снять запрос, а драйвер ещё
 AD> отчитаться контроллеру прерываний что прерывание обслужено

А вот если нет драйвера ?

Я не до такой степени подкован, чтобы писать эти самые драйвера. У меня есть
прога на C++, следящая за возникновением прерывания. Я хочу сделать так:
Если получено прерывание, обращаемся к карте.
Карта в ответ на обращение по своему адресу снимает запрос прерывания.
Покатит такой вариант или у линии IRQ есть максимальная граница длины
импульса ?

 VT>> Какова таблица истинности К555ИД4 ? В справочнике не нашёл...

 AD> P.S. Не лез бы ты пока в прерывания...

...А надо.


With best regards, Vadim.  E-mail: snipped-for-privacy@nc.ru



Re: IRQ/К555ИД4
Hello, Vadim!
You wrote to Alexander Derazhne on Wed, 20 Aug 2003 16:07:18 +0000 (UTC):

 AD>>     Хочешь чтобы гарантировано работало? Удерживай её до тех пор,
 AD>> пока есть условия для запроса.

 VT> Т.е. хоть целую секунду ?

    Угу. Пока у ЦП руки не дойдут до обслуживания.

 AD>>  После обслуживания драйвером железо должно снять запрос, а драйвер
 AD>> ещё отчитаться контроллеру прерываний что прерывание обслужено

 VT> А вот если нет драйвера ?

    Работать не будет.

 VT> Я не до такой степени подкован, чтобы писать эти самые драйвера.

    Тогда не дёргай их. Дёрнуть легко, обработать потом, не завесив машину -
труднее. Во всяком случае для тебя (пока).

 VT> У меня есть прога на C++, следящая за возникновением прерывания. Я
 VT> хочу сделать так:
 VT> Если получено прерывание, обращаемся к карте.
 VT> Карта в ответ на обращение по своему адресу снимает запрос
 VT> прерывания.

    Это называется режим полинга, т.е. ты постоянно опрашиваешь некий
регистр. При этом абсолютно всё равно какой регистр опрашивать - у себя на
плате или в контроллере прерываний. Неписанные правила требуют иметь где-то
у себя бит(ы) готовности, бит(ы) маски и общий бит разрешения прерываний.
Все возможные причины запроса прерываний сводятся воедино через свои маски и
потом, через общий бит выводятся на шину. Одновременно они (причины и ещё
что нужно) доступны в регистре готовности. Общая идея такова:
    1) драйвер инициализирует плату;
    2) драйвер запоминает старый вектор прервывания и ставит свой;
    3) драйвер разрешает работу с этим прерыванием в контроллере прерываний;
    4) драйвер снимает (или ставит - как логика сделанна) биты масок;
    5) при возникновении прерывания управление передаётся
процедуре-обработчику из состава драйвера;
    6) драйвер считывает регистр готовности и узнаёт чего и сколько ему
предстоит обработать, решает, кто самый приоритетный из имеющихся запросов;
    7) обрабатывает запрос;
    8) возвращается к п.6 пока не будут исчерпаны все причины;
    9) к этому моменту запрос с шины должен быть снят;
    10) драйвер сообщает контроллеру прерываний, что прерывание обслужено.
    11) по завершении работы драйвер выполняет п.3 и 2 в обратном
направлении :-).

    На этом пути прикопано немало граблей и грабелек, вроде "передатчик
всегда готов", переполнения буфера и т.д. Оно тебе надо?

    Более простой путь
    1), 6), 7), 8) без изменений;
    2)...5), 9)...11) отсутствуют

    Начни с этого и добейся работы. Это не просто так - контроллеру
прерываний _нужно_ сказать, что прерывание обработано, иначе можно повесить
систему. Если же ты не используешь их (прерывания) по прямому назначению -
лучше опрашивай свой регистр, не занимай линию, они в писишке в дефиците.

 VT> Покатит такой вариант или у линии IRQ есть максимальная граница
 VT> длины импульса ?

    Нет ограничения.

 VT>>> Какова таблица истинности К555ИД4 ? В справочнике не нашёл...

 AD>> P.S. Не лез бы ты пока в прерывания...

 VT> ...А надо.

    Так, как ты описал - абсолютно не надо.

With best regards,
            Alexander Derazhne.



Re: IRQ/К555ИД4
Привет Vadim!

19 Aug 03 18:46, Vadim Tzirulnicov писал All:

 VT> В каком диапазоне лежит допустимач длительность удержания картой линии
 VT> IRQ ?

    Hа ISA? Hеограниченно. Это в смысле именно "держать", то есть выдавать
низкий уровень. Тебя же, наверное, интересовала длительность "отпускания" этой
линии - смотри документацию на контроллер прерываний. Это зависит от режима, на
который он запрограммирован.

 VT>  Какова таблица истинности К555ИД4 ? В справочнике не нашёл...

    Hе пользуйся микросхемами, на которые нет datasheet от производителя.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Северо-Кавказская межрегиональная ассоциация анонимных соискателей.

Site Timeline