LINUX.ORG.RU

parport


0

0

Всем привет!

В настоящее время пытаюсь соединить два компьютера через lpt порт. Использую двунаправленный режим (настройка Bi-directional в BIOS компьютеров). Для передачи данных использую Control Port (Base Port + 2). Распиновка этого порта следующая: Bit0 Pin1 Bit1 Pin14 Bit2 Pin16 Bit3 Pin17 и так далее

Для записи в порт и чтения из порта использую outb и inb макросы, когда записываю в порт данные 000001 на обоих компьютерах я могу их прочитать и даже померять мультиметром — на Пин1 при этом 0 Вольт (Strobe инвертирован), когда записываю в порт 000000 (Strobe теперь установлен в 0), на Пин1 появляется логическая единица — 5 Вольт. Вроде все работает, но когда я соединяю два компьютера этим проводом, предварительно записав в порт на каждом из них 000001 (0 Вольт на на Пин1), затем на первом компьютере записываю в порт 000000 (5 Вольт на Пин1), читаю из порта на первом компьютере — все ок, читаю из порта на втором компьютере — ничего не поменялось. Казалось бы на конце провода должно быть 5 Вольт, то есть состояние порта на Пин1 второго компа должно стать 5 Вольт (000000), но оно остается 0 Вольт (000001). Провод рабочий, пины 1, 14, 16, 17 на обоих концах прозваниваются — соединены напрямую.

Вопрос: почему? Может посоветуете какой-нибудь guide?

Заранее благодарен.

anonymous

0 В на втором компьютере "передавливают" 5 В с первого. Попробуй на втором компе ничего не записывать в порт.

Теперь у меня вопрос:

> Для записи в порт и чтения из порта использую outb и inb макросы

В какой ОСи ты пишешь. В ДОС (Вин95/98)??? или в linux'е. Если в линуксе, дай кусок кода для записи/чтения в/из порт(а) и расшифровку макросов. И как на счёт прав доступа? Всё пускаешь из под рута?

anonymous
()
Ответ на: комментарий от anonymous

пишу в линухе, (man outb), запускаю из под рута, код следующий:

#define PORT 0x378

ioperm(PORT+2,3,1); outb(0x01, PORT+2);

для чтения соответсвенно inb(PORT+2);

в любом случае с пермишеннами все ок, так как на одном компе я могу и читать и писать в порт.

По поводу "передавливания": 5 Вольт первого должны "передавить" 0 Вольт второго, так как я пишу в порт вначале на втором компе, а потом - на первом.

anonymous
()

А собственно, в чем сверхзадача? Не изобретаете ли Вы велосипед?

ansky ★★★★★
()
Ответ на: комментарий от anonymous

>5 Вольт первого должны "передавить" 0 Вольт второго,

ржу нимагу ;)

а может взять и использовать ppp воверх lpt?
в linux уже драйвер для этого есть...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.