help-програмирование lpt порта

toxa
nicetry

но тут рождается другой вопрос: если человеку нужно работать со стандартным портом, то почему бы не использовать стандартные средства ? почему обязательно нужно лезть к портам ?

Скорее всего, ему нужно не байты пересылать, а управлять отдельными pin’ами порта, включая всякие там “strobe”, “line feed” и прочие. Так как, скорее всего, учитывая местную специфику, это связано с управлением чпу станком.

ps: Драйверы тоже от версии к версии переписывать иногда надо. Большое количество дров для NT не работает в XP и 2000. Смотря что и как написано. PortTalk - очень хорошее решение для уже написанных продуктов (при чем давно и зачастую под дос, как, например симулятор CSM).

nicetry

ну что тут сказать ? при любом подходе засад хватает, операционка такая 😉

Команда

Незнаю как но у меня всё срослось, экспериментально выяснол,
что чтобы считать регистр состояния LPT, надо сначала, пофиг че запихнуть в регистр данных.
Причем запись в регистр данных на моем компе производится только
2-16 кратным повторением одного и одного и тогоже байта.
На это я убил тоже около недели. Вообщем спасибо.

nicetry

т.е. станок будет резать правильно со 2го - 16го прохода ? - круто! 😁

toxa
Команда

Незнаю как но у меня всё срослось,

Ну мы-то тем более ничего не знаем о ваших изысканиях. Вы бы написали поподробнее, глядишь - и прояснилось бы. Как минимум надо знать:

  1. версия os, если стоит servicepack - какой?
  2. язык и версия компилятора: фирма, версия, servicepack
  3. режим lpt порта: ecp/epp/bi-directional
  4. адрес порта, irq
  5. кусок кода программы, где мы пытаемся читать и писать в порт, опрашивать или устанавливать статус

Код желательно с комментариями, относительно того, что вы _подразумевали_ этим куском кода сделать.

nicetry

есть еще вариант: пиши под линукс 😃
там есть замечательная функция ioperm, которая открывает руту доступ к нижнему пространству портов. проверено, мин нет - мой текущий проект так и работает, весь код работы с портом - 300 строк с выкрутасами.

PS: а такого, как описываеш - в принципе быть не может (во всяком случае не должно).