Главная страница
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.025 c
1-1106819789
SlaT
2005-01-27 12:56
2005.02.13
Delphi и обработка нажатий клавиш в др. приложениях


1-1106730839
race1
2005-01-26 12:13
2005.02.13
редактор контролов


14-1106539678
ghg
2005-01-24 07:07
2005.02.13
мнение о книжке


1-1107161046
Mr_Bob
2005-01-31 11:44
2005.02.13
Ярлыки


14-1106224865
Anonimus
2005-01-20 15:41
2005.02.13
Выделенка на Вынь2к