Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

LPT-порт и прерывания   Найти похожие ветки 

 
MAXHO ©   (2004-01-20 17:14) [0]

Не поможет ли кто с прерываниями? Конкретно - куда подавать импульс прерывания от внешнего устройства, как организовать, чтобы программа реагировала на прерывания и куда ложить (или как указать) обработчик прерывания? Был бы очень благодарен за какой нибудь пример (исходник) с пояснениями. Моя почта vasser@krw.ru. Но можно и сюда :)


 
Slym ©   (2004-01-21 09:08) [1]

1. В Виндах на пользовательском уровне понятия прерывание НЕТ! Поэтому для твоей программы прерываний НЕТ!
2. Импульсы подавать в порт к которому подключено устройство Импульс вызовет аппаратное прерывание.

Ты можешь работать с устройством как с файлом:
f:=FileOpen("Com1",...)
FileRead(f,...)


 
N169   (2004-01-21 10:39) [2]

Подавать на вх. линию ACK.

Обрабатывать можно в [своём] [legacy] драйвере, предварительно зарегистрировав свой обработчик (см. инфу на запрос IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT в Windows DDK), обратившись к драйверу логического устройства Параллельный порт.

Уведомлять user mode приложения можно через именованные события (event с именем).

Если речь идёт о подсчёте импульсов, то разумно в своём драйвере сделать кольцевой буфер достаточной длины, в который будут записываться метки времени (чтобы получить метку времени, при обработке прерывания можно вызвать KeQueryPerformanceCounter()), а внешнее приложение сможет их считывать и обрабатывать.


 
MAXHO ©   (2004-01-21 15:39) [3]

еххх....ну не знаю я как писать драйвера, даже не знаю на чём :)


 
tesseract ©   (2004-01-22 10:11) [4]

есть нмало копонентов которые работают наплевав на стандарты IEEE1284 - прямой записью в порт - ну почитайте вы наконец форумы до задавания глупых вопросов!!!!


 
Digitman ©   (2004-01-24 13:51) [5]


> LPT-порт и прерывания [D6, WinXP]


см.
CreateFile("LPT1", ..., FILE_FLAG_OVERLAPPED, ..)

и никакие "прерывания" не нужны будут - в этом режиме система сама обрабатывает прерывания порта и извещает тебя о факте их возникновения вызовом указанной тобой overlap-функции


 
Digitman ©   (2004-01-24 13:53) [6]

FILE_FLAG_OVERLAPPED
Instructs the operating system to initialize the object, so ReadFile, WriteFile, ConnectNamedPipe, and TransactNamedPipe operations that take a significant amount of time to process return ERROR_IO_PENDING. When the operation is finished, an event is set to the signaled state.
When you specify FILE_FLAG_OVERLAPPED, the ReadFile and WriteFile functions must specify an OVERLAPPED structure. That is, when FILE_FLAG_OVERLAPPED is specified, an application must perform overlapped reading and writing.
When FILE_FLAG_OVERLAPPED is specified, the operating system does not maintain the file pointer. The file position must be passed as part of the lpOverlapped parameter (pointing to an OVERLAPPED structure) to the ReadFile and WriteFile functions.
This flag also enables more than one operation to be performed simultaneously with the handle (a simultaneous read and write operation, for example).



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
3-1078565230
Trap
2004-03-06 12:27
2004.04.04
Создание таблицы в путом файле *.mdb через ADO


8-1070574471
Suharew
2003-12-05 00:47
2004.04.04
Как работать с рисунками GIF


14-1078999856
one-off-job
2004-03-11 13:10
2004.04.04
Требуется программист/программисты для удаленной работы.


1-1079345571
Bes
2004-03-15 13:12
2004.04.04
насчет Plugin ом....


1-1079594264
Infom
2004-03-18 10:17
2004.04.04
dxTreeList