Мне очень нужно подать сигнал на выходы D0 и D1 LPT порта. Можно ли это сделать простыми функциями записи в файл или функциями записи в порт. Еще один нюансик, это должно по возможности быстро работать.
13.05.04 19:40: Перенесено модератором из 'C/C++' — ПК
Здравствуйте, Batatakumba, Вы писали:
B>Мне очень нужно подать сигнал на выходы D0 и D1 LPT порта. Можно ли это сделать простыми функциями записи в файл или функциями записи в порт. Еще один нюансик, это должно по возможности быстро работать.
По всей видимости ты имеешь в виду из-под Виндов
Для 9х/Ме все просто: outp.
Для НТ же гемморой — придется писать драйвер. Пример см. DDK\src\general\portio.
Здравствуйте, esquire, Вы писали:
E>Здравствуйте, Batatakumba, Вы писали:
B>>Мне очень нужно подать сигнал на выходы D0 и D1 LPT порта. Можно ли это сделать простыми функциями записи в файл или функциями записи в порт. Еще один нюансик, это должно по возможности быстро работать.
E>По всей видимости ты имеешь в виду из-под Виндов
E>Для 9х/Ме все просто: outp. E>Для НТ же гемморой — придется писать драйвер. Пример см. DDK\src\general\portio.
А CreateFile("////lpt1", ....), не пойдёт?. ИМХО D1 и D0 есть биты данных, записать байт в файл и оппа ... Ну, тут с режимом LPT ещё может быть гимор, тут думать надо.
Здравствуйте, Protey, Вы писали:
E>>Для 9х/Ме все просто: outp. E>>Для НТ же гемморой — придется писать драйвер. Пример см. DDK\src\general\portio.
P>А CreateFile("////lpt1", ....), не пойдёт?. ИМХО D1 и D0 есть биты данных, записать байт в файл и оппа ...
имхо потом WriteFile() не возвратит управление, пока не появится ACK.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Чтобы работало пошустрей, вместо WaitForSingleObject можно вставить пустой цикл с проверкой времени
Да пребудет с тобою сила
Re[3]: Программирование LPT
От:
Аноним
Дата:
18.05.04 09:01
Оценка:
Здравствуйте, Protey, Вы писали:
P>Здравствуйте, esquire, Вы писали:
E>>Здравствуйте, Batatakumba, Вы писали:
B>>>Мне очень нужно подать сигнал на выходы D0 и D1 LPT порта. Можно ли это сделать простыми функциями записи в файл или функциями записи в порт. Еще один нюансик, это должно по возможности быстро работать.
E>>По всей видимости ты имеешь в виду из-под Виндов
E>>Для 9х/Ме все просто: outp. E>>Для НТ же гемморой — придется писать драйвер. Пример см. DDK\src\general\portio.
P>А CreateFile("////lpt1", ....), не пойдёт?. ИМХО D1 и D0 есть биты данных, записать байт в файл и оппа ... Ну, тут с режимом LPT ещё может быть гимор, тут думать надо.
Я пишу под win2000, и не один из способов кроме как написание собственного драйвера я не обнаружил, по поводу
CreateFile("LPT1", ....) возвращает нормальный хендел, но привходе в функцию WriteFile замерает там довольно на долго (до нескольких минут), и возвращает 0 как количество удачно записанных байт.
CreateFile("////lpt1", ....) возвращает хендел, FFFFFFFF, по этому дальнейшее использование смысла не имеет.
Огромное спасибо всем кто принял участие в обсуждении этой темы, особенно тем кто дал талковы линки.
Я пишу под win2000, и не один из способов кроме как написание собственного драйвера я не обнаружил, по поводу
CreateFile("LPT1", ....) возвращает нормальный хендел, но привходе в функцию WriteFile замерает там довольно на долго (до нескольких минут), и возвращает 0 как количество удачно записанных байт.
CreateFile("////lpt1", ....) возвращает хендел, FFFFFFFF, по этому дальнейшее использование смысла не имеет.
Огромное спасибо всем кто принял участие в обсуждении этой темы, особенно тем кто дал талковы линки..
Здравствуйте, Batatakumba, Вы писали:
B>Я пишу под win2000, и не один из способов кроме как написание собственного драйвера я не обнаружил, по поводу B>CreateFile("LPT1", ....) возвращает нормальный хендел, но привходе в функцию WriteFile замерает там довольно на долго (до нескольких минут), и возвращает 0 как количество удачно записанных байт.
Вот, тут и заковыка, скорее всего у тебя включён один из расширенных протоколов передачи данных по LPT. Попробуй указать в БИОСЕ, что LPT режим — стандатный.
B>CreateFile("////lpt1", ....) возвращает хендел, FFFFFFFF, по этому дальнейшее использование смысла не имеет.
Сорри, "\\\\lpt1" должно быть, это == "lpt1", но, при иницировании LPT10 и выше, нужно писать со слешами, к СОМ портам это тоже относиться.
Это что-бы не париться с проверкой на номер порта.
B>Огромное спасибо всем кто принял участие в обсуждении этой темы, особенно тем кто дал талковы линки..