Показать сообщение отдельно
  #4  
Старый 04.03.2012, 21:00
Аватар для zoox
zoox zoox вне форума
Прохожий
 
Регистрация: 04.03.2012
Сообщения: 3
Репутация: 10
По умолчанию

Нет, нужен именно LPT. Хотя в программе будет поддерживатся еще и USB. Но сейчас вопрос стоит только для LPT. Это для станков ЧПУ и большинство станков работают именно по LPT. Поэтому и скорость нужна большая (для шаговых двигателей) и стабильная регулировка частот на выходе порта.
Насчет работы с портом через файл если честно немного не понял. Обьясните кто знает. Вот исходник:
Код:
var
  Form1: TForm1;
  hLPT: THandle;
  Data: byte;
  Data2: byte;
  ret: DWORD;
  Address: byte;

const
IOCTL_PAR_SET_WRITE_ADDRESS = $16001C;

Далее процедура при нажатии на кнопку:

Address := $AA;
hLpt := CreateFile('LPT1', GENERIC_READ or GENERIC_WRITE, 0, nil,
        OPEN_EXISTING, 0, 0);
DeviceIoControl(hLpt, IOCTL_PAR_SET_WRITE_ADDRESS, @Address, 1, nil, 0, ret, nil);
// Запись
writefile(hlpt, [$55], 1, ret, nil);
// Чтение по адресу
ReadFile(hLPT, Data2, 1, ret, nil);
Panel1.Caption := inttostr(data2);
CloseHandle(hLpt);
Админ: Пользуемся тегами для оформления кода!

Обьясните для чайника где адрес порта? Если это переменная address то почему ее значение $AA? Это же не лпт порт... Пробовал вместо $AA писать 888 и $378, кидал туда самые разные данные но на выходе порта ничего не происходило. Что я делаю нетак?
Ответить с цитированием