Вопрос про LPT порт

makar_chudra

хочу отправить один байт на LPT.
пишу так:
Data:=$00;//то что хочу отправить
hLPT := CreateFile('LPT1', GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);//открываю на запись
Address := 888;//адрес регистра данных LPT порта
DeviceIoControl(hLpt, IOCTL_PAR_SET_WRITE_ADDRESS, @Address, 1, nil, 0, ret, nil);//так надо(нашёл в инете).типа говорим устройству что товсь на запись по адресу Address(?)
WriteFile(hLpt, Data, 1, ret, nil);//пишем 1 байт
CloseHandle(hLPT);//закрываем
работает ли так?передастся ли байт Data в нужный регистр?
пробовал по всякому.
в чём может быть ошибка?не могу проверить т.к. результат всегда один и тот же: не работает! может кто работал с LPT?

makar_chudra

может есть у кого диоды?потестить прогу

GAD_FATAL

Крута, я работал с LPT, знаю всё по этой теме

evgen5555

ioctl отсылается девайсам, а не файлу.

kokoc88

Для отправки байта в LPT порт достаточно открыть файл и записать туда данные.

makar_chudra

а если мне нужен доступ не только к регистру данных?поэтому и приходится записывать по адресу конкретному

tamusyav

Какая ОС?

makar_chudra

Под Windows XP пишу

kokoc88

Под Windows XP пишу
Для прямой записи в порты придётся писать драйвер.

makar_chudra

драйвер нашёлся.всё вроде как работате(со стороны компа).а вот девайс не пашет.смотрю прогой какие пины выставляет прога аналог.повторяю и ничего не происходит.не знаю прям в чём может быть дело
Оставить комментарий
Имя или ник:
Комментарий: