Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нестандартная работа с LPT [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


RS19 ©   (2003-10-05 18:23:00) 

Всем всех благ.
Помогите разобратся з железом.Проблема вот в чём: Есть устройство, которое имееть 22 пин-выхода и подключено к пинам LPT порта. При работе, устройство подает на соответствующие пини напржение 5 вольт на протяжении некоторого времени. Принцип - есть напряжение 5 воль - соттвественному номеру пина присваевается; 1 отсутствует - 0. Ворос - возможно ли в Delphi (или на Асме) постоянно опрашивать все пини (кроме пинов питания, соответственно) на присутствие или отсутствие сигнала, а так же необходимо на два пина (по вашему усмотрению) подавать с компа сигнал устройству (четире сигнала соответственно - 00,01,10,11). Как правельно это реализовать для коректной работи программы хотя бы в Win9X (желательно и в WinNT/XP/2000)
Заранее спасибо.


smit   (2003-10-07 10:21:00) [1]

function GetPort(p : word = $379):byte; stdcall;
begin
asm
push edx
push eax

mov dx,p
in al,dx
mov @result,al

pop eax
pop edx
end;
end;

Procedure SetPort(b:byte; p : word = $378);Stdcall;
begin
asm
push edx
push eax

mov dx,p
mov al,b
out dx,al

pop eax
pop edx
end;
end;

Но вся проблема в том, что LPT может выдавать 7 или 8 пин на выход, а ещё меньше - на вход. Надо схему с учётом этого дорабатывать. Работает код только под 9х.


Evgeny V   (2003-10-06 09:09:00) [2]

Поищи zlportio - позволяет писать и читать порты под виндами, если дашь мыло, могу прислать


Наверх

Титульная страница Поиск, карта сайта Написать письмо