Ответ - элементарно, Ватсон!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 01 марта 2003 г. 12:14
В ответ на: 1/2 OFF отправлено John 01 марта 2003 г. 11:58

Я сам работаю с такой карточкой. Еще до ее покупки написал простеникий class-драйвер LPT-порта, который реализует напрямую дергая ноги все нужные мне функции. (на основе примера из DDK это в 6 секунд делается). И добавляю их (функции) по мере надобности. Для меня это оказался самый удобный путь. После покупки карточки на нетмосе - этот драйвер САМ СЕЛ на нее. То есть в винде появился LPT2: а мое чудо стало BBLAST2:. Все обращения делаю через IOCTL - например мой драйвер умеет делать загрузку по SPI-протоколу одного из моих девайсов - для этого достаточно из винды сделать три строчки на C - CreateFile, DeviceIOControl, в который передать буфер с данными, и CloseFile. Проверял и в XP и в NT4 и в 2000 - работает везде. Самое главное - что это есть единственный корректный метод работы с LPT. Так как я оффициально получаю право от ядра распоряжаться портом, и гарантированно, что никакой другой драйвер в этот момент к порту не пролезет.

Адреса портов дает мне драйвер нижнего уровня по запросу IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO. Затем делаем IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE - с этого момента порт наш, и ни один максплюс или принтер к нему не влезет. Затем, если надо, IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT, и сидим на прерывании.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru