• XSS.stack #1 – первый литературный журнал от юзеров форума

Управление платами в Delphi

mause

(L1) cache
Пользователь
Регистрация
26.11.2005
Сообщения
597
Реакции
0
Ситуация такова, есть PCI платы Advantech, довольно старые. Управление ими идет из доса, инициализация и пр. Платы эти АЦП и ЦАП и еще одна плата релешная, вот и хотелось би их как то перевести на винду, драйверов не нашел для них, код инициализации приведу в аттаче.
Пример процедуры для остальных плат
Код:
Procedure Spindel_On;
Begin
  Port[pcl726+4]:=Round(S*4.095) div 256;{max}{min=0}
  Port[pcl726+5]:=Round(S*4095) mod 256;
  Port[pcl725]:=2;
End;

Procedure Spindel_Off;
Begin
  Port[pcl726+4]:=0;
  Port[pcl726+5]:=0;
  Port[pcl725]:=0;
End;

 Procedure Z_Left;
 Begin
   V:=2048-Trunc(F);
   Port[pcl726+2]:=V Div 256;
   Port[pcl726+3]:=V Mod 256;
 End;
Соответсвенно инициализируеться тока 833 плата, для остальных идет просто отправление значения на порт, кто с таким работал подскажите как все это перевести в делфи.
Плата 833 - АЦП, 726 - ЦАП, 725 - блок реле.
 

Вложения

  • MAUSE.zip
    1.9 КБ · Просмотры: 226
Ясно... сам написать не смогу.. значит придется что то думать...
наткнулся на такие вот процедуры
Код:
function getport(p:word):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(p:word;b:byte);Stdcall;
begin
 asm
 push edx
 push eax

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

 pop  eax
 pop  edx
 end;
end;
они будут работать? и если будут то где? в асме вообше не понимаю...
 
google: inpout32.dll

Оно рулит, педалит и решает проблему.

groundhog
В том-то и дело, что не обязательно)
 
угу, спасибо за наводку, попробуем сделать с этим все, а по тем процедуркам на Асеммблере не подскажешь ничего?
что то все тока лтп портом управляют при помощи этой библиотеки... Странно...
 
in и out являются привилегированными инструкциями процессора, из user-mode они не доступны ни в одном Windows линейки NT+.

Поэтому, варианта два - или писать драйвер или использовать для работы через порты вышеуказанную dll.
Как справочник портов можешь использовать книгу Всеволода Несвижского (текст не читай, автор слишком крутую траву покупает, но как набор таблиц с номерами портов - сойдет).

Лично года три назад что-то писал для PC-speaker используя эту dll.
 
Всегда пожалуйста, уважаемый.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх