В каком диапазоне лежит допустимач длительность удержания картой линии IRQ ? Какова таблица истинности К555ИД4 ? В справочнике не нашёл...
IRQ/К555ИД4
Aug 19, 2003
3 Replies
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
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.
Привет Vadim!
19 Aug 03 18:46, Vadim Tzirulnicov писал All:VT> В каком диапазоне лежит допустимач длительность удержания картой линии VT> IRQ ?
Hа ISA? Hеограниченно. Это в смысле именно "держать", то есть выдавать низкий уровень. Тебя же, наверное, интересовала длительность "отпускания" этой линии - смотри документацию на контроллер прерываний. Это зависит от режима, на который он запрограммирован.
VT> Какова таблица истинности К555ИД4 ? В справочнике не нашёл...
Hе пользуйся микросхемами, на которые нет datasheet от производителя.
Всего наилучшего, [Team PCAD 2000] Алексей М. ... Северо-Кавказская межрегиональная ассоциация анонимных соискателей.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required