Свежие обсуждения
Компьютеры

Программа связи Windows и самодельного микроконтроллерного устройства

1 3 4

chav1961: Если интересно, вечером могу отправить исходники программатора, который в свое время написал для COM-порта (только мыло в профиле напишите).
Мне пришлите, пожалуйста. Интересно. А про LPT есть что-нибудь? Пора мне тоже с этим разобраться. А то когда надо подёргать порты за ноги, приходится перезагружаться в MS-DOS.

 

Просмотрите Радио 1/2001, стр. 23 "Работа с последовательными портами в windows 95". Там основано на стандартном принципе чтения/записи файла.

 

6П3С: А про LPT есть что-нибудь?

С LPT немного по другому. Там с помощью драйвера получаешь доступ к порту, а потом работаешь, как в DOS-е.
Гугль по слову "giveio.sys". Это не драйвер LPT как таковой, это драйвер, позволяющий пользовательскому приложению получить доступ к любым портам ввода-вывода. Я, например, при помощи этого драйвера генерил звук в динамик

Есть и другие драйвера: dlportio.sys, ещё что-то...

Если надо, могу выложить пример на дельфи.

 

chav1961: : Если интересно, вечером могу отправить исходники программатора, который в свое время написал для COM-порта (только мыло в профиле напишите).
пришлите плиз.
А про драйверы я прочитал у Титова в указанной мной ссылке на статью:
"Написать программу, управляющую устройством через COM порт, для MS-DOS не так сложно. Это частенько делали не программисты, а сами разработчики устройства. ......С платформой Win32 дело обстоит сложнее. ...напрямую работать с регистрами портов нельзя, Windows это не позволяет, зато можно не обращать внимания на тонкости различных реализаций (i8055, 16450, 16550A) и не возиться с обработкой прерываний.

Описание программирования будет состоять из подробного описания функций, специфических для работы с портами, краткого описания функций работы с файлами (с портами в Win32 работают как с файлами), краткого описания функций многопотоковой обработки и, естественно, примеров программ.

.......Windows требует точного соблюдения аппаратного протока обмена с внешними устройствами. Другими словами, у Вас не получится управлять, например, светодиодом подключенным к одному из выводов параллельного порта. Просто потому, что система будет требовать отработки и сигналов STROBE и ACK. Если Вас это не устраивает, то выход один - писать собственный драйвер вооружившись DDK. ...."

 

2Любитель
API, по идее, будет работать в любой винде из любой среды программирования. Просто Титов написал на С. Если это ф-я АПИ, то её выполняет сама винда. А вызывать эти ф-ции из программы на каком языке - пофиг, хоть васик, хоть С.
26П3С
Хотя бы во втором сообщении этой темы

--
Эхх. не умею я объяснять по человечачьи

 

SiNil: Если это ф-я АПИ, то её выполняет сама винда. А вызывать эти ф-ции из программы на каком языке - пофиг
А можно тогда пример, как вызвать фукцию API на TurboPascal 7.0 ? (Delphi (Visual Pascal) не предлагать )

 

Арс: TurboPascal 7.0

А причем тут турбо паскаль ? Может еще и красноглазых вспомним ?

 

На турбопаскале можно работать с COM-портом по-ДОСовски, через БИОС. Виндовс виртуализует COM-порты для ДОС-приложений, так что всё будет работать. Я до сих пор часто пользуюсь терминалкой Term90 из пакета Нортон-коммандера.

 

Windows требует точного соблюдения аппаратного протока обмена с внешними устройствами. Другими словами, у Вас не получится управлять, например, светодиодом подключенным к одному из выводов параллельного порта. Просто потому, что система будет требовать отработки и сигналов STROBE и ACK. Если Вас это не устраивает, то выход один - писать собственный драйвер вооружившись DDK. ...."

неверно
виндовсе ничего не требует
смысл драйвера ядра состоит в том, что кусок кода, который выполнялся в досе (несколько асмовых команд для записи в порт по адресу 378) теперь "окружен" навесом, который необходим, чтобы загрузить кусок кода и выполнить его
таких драйверов есть несколько штук
из дельфи я пробовал один
на сях другой и все они работают нормально
можно зажигать любой диод на порту

вот тут все расписано http://www.pcports.ru/Articles.php

 

Арс: А можно тогда пример, как вызвать фукцию API на TurboPascal 7.0 ?
А он знает, что такое виндовс, этот турбо паскаль 7.0 ?Этож вроде среда для доса. Тогда, имхо, вопрос не корректен.