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

Вниз

Работа с LPT-портом под XP   Найти похожие ветки 

 
X9 ©   (2005-01-24 07:46) [0]

Здравствуйте, Мастера!
Я собрал самоделку, которая управляет мощной нагрузкой через тиристор. Самоделка подключается к LPT-порту к выводу d0. При выполнении следующего кода на TP7 под DOS всё работает нормально(Извиняюсь за неоптимальный код, писал только для проверки):
-------------------------------
program LPTProg;

uses
 Crt,
 Dos;

var
 I: Byte;

begin
 while true do
 begin
   if Random(2) = 1 then
     Port[MemW[$0040:$0008]] := 1;
   Delay(5000);
   if Random(2) = 1 then
     Port[MemW[$0040:$0008]] := 0;
   Delay(5000);
 end;
end.
-------------------------------
Мне необходимо реализовать "отправку" в LPT-порт одного байта. Я попытался сделать так:
-------------------------------
procedure StartLPTCycle;
var
 LPTHandle: THandle;
 BW: Cardinal;
 B: Byte;
begin
 LPTHandle := CreateFile("LPT1", GENERIC_WRITE,FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
 while true do
 begin  
   B := 1;
   if Random(2) = 1 then
     WriteFile(LPTHandle, B, 1, BW, nil);
   Sleep(500);
   B := 0;
   if Random(2) = 1 then
     WriteFile(LPTHandle, B, 1, BW, nil);
   Sleep(500);
   Application.ProcessMessages;
 end;  
 CloseHandle(LPTHandle);
end;
-------------------------------
Программа виснет при выполнении функции WriteFile. Скажите, пожалуйста, что в этом коде неправильно?


 
rainy   (2005-01-24 07:51) [1]

Насколько я знаю в XP доступ к LPT порту сильно ограничен. Это связано с безопасностью. Так что попобуй отладить код сначала в 9х


 
Kerk ©   (2005-01-24 07:52) [2]

а LPTHandle чему равно?


 
X9 ©   (2005-01-24 09:08) [3]

LPTHandle равно 1936 (не соответствует INVALID_HANDLE_VALUE), порт присутствует в системе и имеет название именно LPT1. Скажите, можно ли осуществить данную операцию в XP без написания драйвера? Видел прогу, LPT_Drv_1002 (драйвер с демкой на С++, http://www.2065.nm.ru), она работает нормально, однако использует собственный драйвер. Скажите, можно ли осуществить данную операцию в XP без использования драйвера?


 
KSergey ©   (2005-01-24 09:34) [4]

> [3] X9 ©   (24.01.05 09:08)
> данную операцию в XP без использования драйвера?

Нет.



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

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

Наверх




Память: 0.47 MB
Время: 0.04 c
9-1099757382
Creep
2004-11-06 19:09
2005.02.13
Rotate in OpenGL


4-1104168822
miek
2004-12-27 20:33
2005.02.13
Hook на клавиатуру


1-1106922478
BFG9k
2005-01-28 17:27
2005.02.13
DateTime из строки вида 12:01:29 30/01/05


14-1106727675
AlexKniga
2005-01-26 11:21
2005.02.13
Загадки


4-1104069123
ThunderRT6FormDC
2004-12-26 16:52
2005.02.13
Увидеть все компоненты на окне