IRQ/К555ИД4

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

Reply to
Vadim Tzirulnicov
Loading thread data ...

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

Reply to
Vadim Tzirulnicov

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.

Reply to
Alexander Derazhne

Привет Vadim!

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

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

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

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

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

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

Reply to
Alex Mogilnikov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.