ПРОГРАММИРОВАНИЕ ПОРТА LPT LPT-PORT.NAROD.RU






простая схема ацп цап, икросхемы цап ацп, Чтение информации с LPT порта, inpout32.dll

Работа с LPT под Win 2000, XP: библиотека inpout32.dll

Как я уже упоминал в первой статье, наша чудо-программа Port.exe не сможет работать под Windows NT. ОС данного семейства помимо кучи преимуществ перед предудущими стали обладать омерзительным нравом с точки зрения системного программирования.

Да Вы и сами могли в этом убедиться, пытаясь все таки запустить Port.exe в XP, который у Вас наверняка и стоит. При этом Вы получали слеедующее услужливое сообщение от Windows:

ацп, цап, ацп/цап, микросхемы цап ацп, простая схема цап ацп, простая схема ацп цап, система управления через компьютер, к572пв3

Происходит это из-за того что, разработчики NT с целью обеспечения безопасности использования совместных аппаратных ресурсов компьютера, запретили к ним прямой доступ из программ пользовательского режима (по сути дела из любых программ). Чтобы все-таки обратиться к порту, необходимо все операции проводить через драйвер (довольно хитрая программа, которую начинающему так сходу и не напишешь). Но к счастью, есть уже несколько готовых инструментов позволяющих без проблем общаться LPT портом в NT.

Начнем сначала с самого простого, и в тоже время очень мощного средства: библиотеки inpout32.dll.


Библиотека inpout32.dll

Этот комплекс состоит из 3 файлов:

  • собственно самой динамической библиотеки inpout32.dll
  • статической библиотеки lib, необходимой на этапе сборки программы
  • заголовочного файла с прототипами используемых функций

Скачать эти файлы можно (и нужно) здесь (12 KByte)

Библиотека эта супостатская, подробнее о том кто ее писал и как она работает можно почитать вот по этому адресу: http://www.logix4u.net/inpout32.htm

Все-таки скажу пару слов о том как она (библиотека) работает: сначала она проверяет что за ОС у Вас стоит. Если это 9x - то проблем нет: при обращении к библиотеке с помощью функций Out32(адрес порта, байт данных) - для записи в порт и Inp32(адрес порта) - для чтения из порта, она конвертирует эти ображения к стандартным и известным нам функциям _outp(адрес порта, байт данных) и _inp(адрес порта). Если же она имеет дело с NT, то обращения к ней она конвертирует в запросы к стандартному драйверу ОС, через который и идет обмен информацией с портом.

Ну ладно, хватит теоретической туфты, приступим к практике!


1. Создание проекта программы в VC++ 6.

Программу пишем на Си. Компилятор: VisualC++ 6.0 Подробный процесс создания проекта рассмотрен в предыдущей статье, поэтому сейчас расскажу короче.

File -> New Выбираете там Win32 Console Application. Указывайте в поле Project name имя проекта, например Port32. Нажимайте Ok. В следюущем окне выбирайте пункт An empery project и жмете Finish. Теперь опять File -> New. Отображается закладка Files Выбирайте там C++ Source File. В поле File name укажите имя Port32 для этого файла. Нажимайте Ok. Все подготовительную работу выполнили, можно собственно писать программу. В левой части окна программы выберите закладку FileView. В папке Source Files выберите наш файл Port32.cpp

ацп, цап, ацп/цап, микросхемы цап ацп, простая схема цап ацп, простая схема ацп цап, система управления через компьютер, к572пв3

2. Код программы

Теперь копируюте ниже следующий код в содержмое файла Port32.cpp.

3. Подключение файлов к проекту.

Теперь необходимо подключить к нашему проекту файлы из комплекса inpout32. Сначала скачайте архив с этими файлами себе на жесткий диск (см. ссылку выше). Потом копируйте файлы h.h, inpout32.lib и копируйте их в папку Вашего проекта! Далее выбираем Project -> Add to Project -> Files... В открывшемся окне отыскивайте папку Вашего проекта, выбираете там только что помещенный туда файл h.h и нажимайте Ок. Файл добавиться в проект. Проделывайте такую же операцию и для файла inpout32.lib.

ацп, цап, ацп/цап, микросхемы цап ацп, простая схема цап ацп, простая схема ацп цап, система управления через компьютер, к572пв3

ацп, цап, ацп/цап, микросхемы цап ацп, простая схема цап ацп, простая схема ацп цап, система управления через компьютер, к572пв3

После проведения этих операций, древо проекта должно иметь примерно такой вид, как на рис. слева.

Далее выбирайте на самом верху Build ->Compile Port32.cpp, потом Build ->Build Port32.exe Если Вы все правильно скопировали, и компилятор нормальный, то в самом низу должна появиться надпись:

--------------------Configuration: Port32 - Win32 Debug--------------------
Linking...

Port32.exe - 0 error(s), 0 warning(s)

Если так не получилось, то где-то ошибка. Пишите lpt-port@narod.ru, помогу.

Теперь важный момент - программу пока не запускайте. Лезьте в папку нашего рабочего проекта. Там должна появиться папка Debug. В эту папку необходимо поместить файл inpout32.dll. Вообще этот файл должен быть всегда рядом (в одной директории) с нашей программой, иначе Port32.exe не сможет работать.

4. Тестируем

Запускаем наш Port32.exe (при условии что inpout32.dll находится в той же директории) и используем с тем же оборудованием (светодиод в порту). Если ошибок не было и все файлы находятся там где надо, Вы с радостью пронаблюдаете, как светодиод синхронно заморгает при нажатии клавиш 1 и 0. Как видно из кода, серьезных изменений программа не претерпела, просто все вызовы по выводу в порт проходят через функцию Out32().

ацп, цап, ацп/цап, микросхемы цап ацп, простая схема цап ацп, простая схема ацп цап, система управления через компьютер, к572пв3

Напомню, если не получается, пишите lpt-port@narod.ru, помогу.

В следующих статьях будет рассмотрен еще боллее мощный инструмент для борьбы с Windows NT - драйвер GiveIO.sys а также займемся модернизацией нашего аппаратного оборудования, а то один светодиод - это не серьезно.



Был бы благодарен Вам, если бы Вы смогли найти пару минут и написать, понравился ли материал или нет.


По всем вопросам просьба обращаться: lpt-port@narod.ru

© 2005 "CONTROLLER SYSTEM". Все права защищены.

ацп, цап, ацп/цап, микросхемы цап ацп, простая схема цап ацп, простая схема ацп цап, система управления через компьютер, к572пв3, простой ацп, COM, com, сом, СОМ, параллельный порт lpt, последовательный порт com, примеры программ для работы с портом, подключение светодиодов к порту, порт ввод/вывод, двунаправленныая передача, аналого-цифровой переобразователь, простая схема аналого цифровой преобразователь, цифро-аналоговый преобразователь, Схема подключаения к LPT порту, Подключение светодиодов к LPT порту компьютера, Чтение информации с LPT порта, dlportio.dll, inpout32.dll, _out(), _inp(), Out32(), Inp32(), библиотека для работы с портом, Подключение дисплея к компьютеру, дисплей к портуТакже наша организация проводит курсы и семинары по программированию устройств сопряжения и выпоняет коммерческие заказы по разработке и изготовлению устройств сопряжения.



Hosted by uCoz
 
Внимание!

Сайт переехал на новое место:
www.pcports.ru
Все обновления теперь будут размещаться там