Прямые команды регистрам LPT в XP (LPT на PCI-контроллере!)
От: aleksi4  
Дата: 14.10.08 06:16
Оценка:
Добрый день,

Я столкнулся со следующей проблемой. Как известно, LPT постепенно уходит со сцены и многие новые мамки (уж тем более на буках) его не поддерживают. Я купил PCI-контроллер с LPT и COM портами, но, как и следовало ожидать, в системе им присваиваются какие-то немыслимые адреса I/O (DD00-DD07 или что-то подобное). Из C++ (посредствам GiveIO inout32 и т.п. штук) обратиться к порту этому мифическому не удается. На стандартный 888(378h) — тоже.

Задача: напрямую отсылать данные в регистр Data (старая как мир задача управления светодиодами)

Уже третий день ползаю в Интернете. Не у меня первого такая проблема с полу-фальшивым LPT, но нигде конкретного ответа, как к такому порту обращаться, я, к сожалению, не нашел.

Ситуация сия сильно усложняется тем, что я не программист и хотел просто взять готовые листинги C++, которые есть на http://www.pcports.ru/Articles.php (+ есть уже готовые программы для подобных задач).

Возможно кто-то мне сможет помочь? Самое простое мне кажется — все же связать этот полу-фальшивый PCI-ный LPT с 378h. Либо обращаться к этому порту какими-то иными средствами, а вот какими — непонятно. Возможно, обращаться к драйверу контроллера? (ST Lab'овский I170). Может быть, кто-то сжалится и подскажет самый простой код по C++ (элементарный, консольный)? Буду очень благодарен за помощь, т.к. уже не знаю, как быть
Re: Прямые команды регистрам LPT в XP (LPT на PCI-контроллер
От: ioni Россия  
Дата: 14.10.08 10:29
Оценка:
Здравствуйте, aleksi4, Вы писали:

Напрямую боюсь писать в девайс не выйдет
Попробуйте поискать SDK для данной платы
Re[2]: Прямые команды регистрам LPT в XP (LPT на PCI-контрол
От: aleksi4  
Дата: 14.10.08 20:25
Оценка:
Здравствуйте, ioni, Вы писали:

I>Напрямую боюсь писать в девайс не выйдет

I>Попробуйте поискать SDK для данной платы

ioni, большое спасибо за совет. Вопрос все же решил. Видимо, до этого криво драйвера установил... Удалось через inout32 напрямую обратить про прописанному в системе адресу (на 2 пин порта на DC00 (56320)) — дейсвительно реагирует на логические 0 и 1. Единственное, каждый пин управляется по отдельному адресу (у обычного LPT кажется управляются отдельно три регистра (напр., 8-pin DATA сразу одной командой от 0 до 256 (2^8))). Т.е. тут параллельность уже теряется, но для моих задач — сойдет и так.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.