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

Вниз

Вопрос по WinIO.   Найти похожие ветки 

 
John_Korsh ©   (2008-04-14 16:09) [0]

Не даст ли кто конкретный пример работы с портами Lpt через WinIO, а то, там Help для Си, а InitializeWinIO у меня всё время False  возвращает.


 
tesseract ©   (2008-04-14 16:13) [1]


> InitializeWinIO у меня всё время False  возвращает.


А заголовки точно нормально прописал ? Везде StdCall ?

Может и реально что-то не так у тебя - ты драйвер его правильно поставил ?


 
MBo ©   (2008-04-14 16:16) [2]


unit WinIO;
interface
uses
 Windows;

function IOStart: BOOL; stdcall;
procedure IOStop; stdcall;

function IOReadByte(Port: Word): Byte;
function IOReadWord(Port: Word): Word;
function IOReadDWord(Port: Word): DWord;

procedure IOWriteByte(Port: Word; Value: Byte);
procedure IOWriteWord(Port: Word; Value: Word);
procedure IOWriteDWord(Port: Word; Value: DWord);

function InstallWinIoDriver(pPath: PChar; DL: Boolean = False): BOOL; stdcall;
function RemoveWinIoDriver: BOOL; stdcall;

implementation

function IOStart; external "WINIO.DLL" name "InitializeWinIo";
procedure IOStop; external "WINIO.DLL" name "ShutdownWinIo";

function GetPortVal(wPortAddr: Word; var pdwPortVal: DWord; bSize: BYTE):
 BOOL; stdcall; external "WINIO.DLL";

function SetPortVal(wPortAddr: Word; dwPortVal: DWord; bSize: BYTE):
 BOOL; stdcall; external "WINIO.DLL";

function InstallWinIoDriver; external "WINIO.DLL";
function RemoveWinIoDriver; external "WINIO.DLL";

function IOReadByte(Port: Word): Byte;
var
 d: DWord;
begin
 GetPortVal(Port, d, 1);
 Result := d;
end;

function IOReadWord(Port: Word): Word;
var
 d: DWord;
begin
 GetPortVal(Port, d, 2);
 Result := d;
end;

function IOReadDWord(Port: Word): DWord;
var
 d: DWord;
begin
 GetPortVal(Port, d, 4);
 Result := d;
end;

procedure IOWriteByte(Port: Word; Value: Byte);
begin
 SetPortVal(Port, Value, 1);
end;

procedure IOWriteWord(Port: Word; Value: Word);
begin
 SetPortVal(Port, Value, 2);
end;

procedure IOWriteDWord(Port: Word; Value: DWord);
begin
 SetPortVal(Port, Value, 4);
end;

end.



 
John_Korsh ©   (2008-04-14 17:10) [3]

Спасибо, но чего-то не работает.

В Create вызаваю IOStart.
По кнопке - IOWriteByte ($378, $55) - нет изменений в состоянии порта, хотя
LPT1 сидит на $378 IO.

Чего не так сделал?


 
MBo ©   (2008-04-15 09:53) [4]

>Чего не так сделал?
Не знаю, проверить не реальном девайсе нет возможности.
Однако у меня под XP инициализация проходит нормально, и после записи байта в 378 порт оттуда читается этот же байт. Не знаю, является ли это доказательством функционирования.


 
John_Korsh ©   (2008-04-15 11:27) [5]

У меня приспособа со светодиодиками. Не горят. При использовании консольного варианта IOEngine - зажигаются.


 
John_Korsh ©   (2008-04-15 15:27) [6]

Работает с модулем IOEngine. (Если кому надо). WinIO так и не задышал.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1206401988
Поп Гапон
2008-03-25 02:39
2008.05.11
Перегнать строку в Unicode, зная ее LangID


6-1185952437
leonidus
2007-08-01 11:13
2008.05.11
Компонет для получения страницы из инета по протоколу HTTP


2-1208247738
AlexDan
2008-04-15 12:22
2008.05.11
Строка в массив


15-1206628012
Jeer
2008-03-27 17:26
2008.05.11
Выпускникам ВУЗ-ов с военной кафедрой..


15-1206587384
slider007
2008-03-27 06:09
2008.05.11
С днем рождения ! 27 марта 2008 четверг