Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Помогите пожалуйста подключить датчик к компу..

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   Помогите пожалуйста подключить датчик к компу..
kmfdm
Junior Member

Сообщений: 8
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 05 Апреля 2002 15:45ИнфоПравкаОтветитьIP

Требуется: подключить через LPT или COM обычную
кнопку, которая обычно находится в замкнутом состоянии. Желательно как можно проще. Т.е требуется знать к каким номерам ее подключать,если конечно это возможно. Помогите советом плз. Заранее благодарю.

Весельчак У
Moderator

Сообщений: 1837
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 06 Апреля 2002 03:36ИнфоПравкаОтветитьIP

Проще всего к LPT. Один конец кнопки подключается, например, к 10 контакту, а другой - к любому из 20..25. Разомкнутое состояние кнопки - логическиая "1", замкнутое - "0". Вместо 10 контакта можно использовать 11, 12.

kmfdm
Junior Member

Сообщений: 1
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 06 Апреля 2002 10:10ИнфоПравкаОтветитьIP

Большое спасибо! Теперь осталось написать на асме.

Добавление от 06 Апреля 2002 12:50:

Ах да, забыл спросить,а на USB нечто подобное, очень простое решение возможно?

Elresearch
Junior Member

Сообщений: 5
Откуда: Россия
Регистрация: Февраль 2002

написано 06 Апреля 2002 13:15ИнфоПравкаОтветитьIP

цитата:
kmfdm писал:
Большое спасибо! Теперь осталось написать на асме.

Добавление от 06 Апреля 2002 12:50:

Ах да, забыл спросить,а на USB нечто подобное, очень простое решение возможно?


Для USB - нет (IMHO)

kmfdm
Junior Member

Сообщений: 2
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 06 Апреля 2002 13:43ИнфоПравкаОтветитьIP

Возникла проблема, нужно читать состояние под НТ, для этого есть несколько компонент, например ссылка Но она не подходит. может кто делал нечто подобное именно для НТ?

Весельчак У
Moderator

Сообщений: 1849
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 06 Апреля 2002 21:31ИнфоПравкаОтветитьIP

Под NT придётся писать драйвер, иначе - труба. Можно, конечно запускать DOS через VmWare, но это, по-моему, изврат.
P.S. А зачем писать на ассемблере? Неужели так время критично?

forrest
Member

Сообщений: 51
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 08 Апреля 2002 00:50ИнфоПравкаОтветитьIP

Поскольку речь идёт о LPT, то думаю, что о "критичности" времени говорить не совсем верно, потому как при обращении к LPT, происходит то же самое, как если бы было обращение к 8-разрядному устройству ISA. Это означает, что не зависимо от того, каким образом идёт обращение к порту: через программу написанную на асме или например си++, хотя понятно, что в конечном счёте ничего другого кроме команд IN, OUT для работы с портами процессор не понимает, цикл обмена между LPT и CPU будет выполняться одно и то же время, причём даже в мультизадачном режиме CPU будет ждать завершения этого цикла обмена, прежде чем выполнит ещё что-либо. Именно этим обстоятельством (8-битный обмен) ограничена скорость обмена через LPT. Если конечно работать с LPT в режимах, отличных от стандартного, то есть использовать ECP,EPP при которых обмен данными происходит через DMA, то можно повысить скорость обмена, однако программирование DMA на асме под NT задача, требующая определённого уровня знаний.

kmfdm
Junior Member

Сообщений: 3
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 08 Апреля 2002 09:59ИнфоПравкаОтветитьIP

Весельчак Уforrest
Спасибо за ответы. На самом деле скорость мне не критична. Писать драйвер нужно как я понимаю на DDK, но для обработки одной кнопки это по-моему "жирновато". Почему НТ? Потому что хоть более менее надежно работает, а приложению где это будет использоваться важна именно защищенность. Может кто-нить делал работу с железкой скажем под Linux (Embedded)?

EDAshkin
Junior Member

Сообщений: 2
Откуда: Смоленск
Регистрация: Март 2002

написано 08 Апреля 2002 11:22ИнфоПравкаОтветитьIP

Мне кажется, что если состояние LPT читать по таймеру, то можно воспользоваться и Tvichhw.

kmfdm
Junior Member

Сообщений: 4
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 08 Апреля 2002 11:25ИнфоПравкаОтветитьIP

EDAshkinА с кнопкой работать будет? она ведь вроде как не подает нужные винде сигналы, или я ошибаюсь?

EDAshkin
Junior Member

Сообщений: 3
Откуда: Смоленск
Регистрация: Март 2002

написано 08 Апреля 2002 12:48ИнфоПравкаОтветитьIP

По тикам таймера (допустим, каждые 100 мс) можно директивно читать порт и проверять бит, на который посадил кнопку. Если кнопка подключена к 10 контакту (ACK), то проверять надо 6 бит в регистре статуса(3BEh для LPT1).

kmfdm
Junior Member

Сообщений: 5
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 08 Апреля 2002 14:07ИнфоПравкаОтветитьIP

EDAshkinК несчастью она 5-ый билдер не поддерживает, или я ошибаюсь?

forrest
Member

Сообщений: 53
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 08 Апреля 2002 14:26ИнфоПравкаОтветитьIP

kmfdm
Если ты ни разу не сталкивался с написанием драйверов для NT, то рекомендую тебе почитать книгу "Язык ассемблера: уроки программирования" авторы П.И.Рудаков и К.Г.Финогенов, выпущена издательством Диалог-МИФИ в 2001 году. Не знаю как у вас в Сургуте, но в Москве она сейчас продаётся практически в любом крупном книжном магазине. Не смотря на свою стоимость около 250 рублей в этой книге на её 640 страницах содержится много просто бесценной информации (в том числе подробно описано создание драйвера для управления аппаратурой через порты под Windows NT/2000) и это её сильное отличие от того множества мукулатуры, которым сейчас в основном забиты полки книжных магазинов.

P.S сейчас посмотрел, тираж выпуска всего 5000 экз., так что до Сибири быть может эту книгу так и не довезли

[Это сообщение изменил forrest (изменение 08 Апреля 2002 14:38).]

kmfdm
Junior Member

Сообщений: 6
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 08 Апреля 2002 14:48ИнфоПравкаОтветитьIP

forrest
Да, в первый раз сталкиваюсь с написанием драйвера.
Нашел кое-что может кому понадобиться: ссылка
Если дойдет обязательно куплю. Кстати там разобрано только для winxx'nt?

EDAshkin
Junior Member

Сообщений: 4
Откуда: Смоленск
Регистрация: Март 2002

написано 08 Апреля 2002 14:51ИнфоПравкаОтветитьIP

kmfdm Насчет билдера не знаю, я на Дельфе все делаю, там Tvichhw работает.
forrest Спасибо за информацию, давно искал что-либо подобное.

kmfdm
Junior Member

Сообщений: 7
Откуда: Сургут, Россия
Регистрация: Апрель 2002

написано 08 Апреля 2002 15:49ИнфоПравкаОтветитьIP

EDAshkin
(Для Делфи) Жаль там в хелпе не указано как поставить компоненту... возникли проблемы.

EDAshkin
Junior Member

Сообщений: 5
Откуда: Смоленск
Регистрация: Март 2002

написано 08 Апреля 2002 16:41ИнфоПравкаОтветитьIP

kmfdm
Там же, где ты нашел tvicHW, лежит tvicPort, в нем больше инструкций и есть
готовые компоненты.

forrest
Member

Сообщений: 56
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 08 Апреля 2002 16:57ИнфоПравкаОтветитьIP

kmfdm
Коротко о содержании этой книги: 1) Основы, 2) Аппаратная организация компьютера, 3) Организация программ, 4) Программирование с использованием системных средств, 5) Арифметический сопроцессор, 6) Защищённый режим, 7) Прикладные виртуальные драйверы систем Windows 95/98, 8) Прикладные драйверы систем Windows NT/2000 (Статья 88 - Основы разработки прикладных драйверов Windows NT/2000, Статья 89 - Драйвер для работы с физической памятью, Статья 90 - Драйвер для управления аппаратурой через порты, Статья 91 - Драйвер для обслуживания аппаратных прерываний)

Если бы Skunk разрешил разместить на своём сервере оглавление этой книги, то мог бы скинуть его в jpeg-е

Весельчак У
Moderator

Сообщений: 1872
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 09 Апреля 2002 02:17ИнфоПравкаОтветитьIP

В написании драйверов поможет DriverStudio.

NZ
unregistered
написано 18 Октября 2002 16:35  ПравкаОтветитьIP

если кому интересно, как писать драйвы или как работать с LPT под linux, пишите, договоримся. n-z@mail.ru

bialix
unregistered
написано 29 Октября 2002 15:33  ПравкаОтветитьIP

Чего вы сразу накинулись на LPT-порт. Если человеку просто надо, то проще использовать СОМ-порт, потом имеем стандартные функции АПИ, через которые опрашиваем состояние кнопки.
Кстати, так без проблем можно опрашивать до 4х кнопок!

tiasur
Junior Member

Сообщений: 1
Регистрация: Декабрь 2002

написано 08 Декабря 2002 21:42ИнфоПравкаОтветитьIP

Есть такая библиотека DLPortIO (легко найдете поисковиком) позволяющая обращаться к порту на NT без проблем (для этого и писалась). К ней прилагаются примеры на VB и VC++. Пробовал пару лет назад - прекрасно. Можно не только считывать, но записать значения в определенные ячейки. Кажется позволяет обращаться и к COM порту, но не уверен.

Добавление от 08 Декабря 2002 21:48:

ссылка

Вот ещё есть и для линукс и для виндовс.

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика