|
Модераторы: Mazzi |
|
СЭНСЭЙ |
|
|||
Опытный Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Есть такая задача:
Подключить мышь по КОМ порту к компьютеру и считывать данные передаваемые мышью. Есть КОМ шариковая мышь. На 586 под ДОС 6,22 работает На Виндовс 98 не работет никак. Есть программа для работы с КОМ портами. Почтила про протокол обмена данными с мышью http://procoder.info/index.php/entry/issle...s2-dlya-myshki/ Пробовал напрямую передавать данные в порт мыши Мышь не отвечает ничего. Помогите Это сообщение отредактировал(а) СЭНСЭЙ - 10.6.2014, 13:07 |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Ну, во-первых, у COM порта есть ещё скорость, которую надо задать правильно чтобы связь с устройством была. Для мышэй типично -- 1200,7,n,1 или 1200,8,n,1. Вроде я ещё помню где-то видел 9600,8,n,1, но это можэт меня и память подводит.
Во-вторых, у PS/2 мышэй протокол несколько отличается от COM. Идеи, в общем, те жэ (2-4 байта на каждое действие -- перемещение, нажатие/отпускание кнопки, с фиксированным расположэнием полей со смещением и нажатыми кнопками), и если хоть что-то от мышы получите -- то понять что это приходит скорее всего не составит труда. Но можэте поискать протокол MSmouse или MouseSystems. Добавлено через 5 минут и 17 секунд А, да, в 98-й можно во-первых поискать и поставить логитековские дрова мышы, а во-вторых поставить дрова serial port mouse через control panel -> add/remove hardware или как-то так. Точнее, лучшэ наоборот -- сначала попробовать поставить виндовые дрова, а потом можно начинать искать логитэковские. Впрочем, если установите этот драйвер -- то мышь будет использоваться для движэния курсора, ничего более полезного из неё получить особенно нельзя будет. |
|||
|
||||
СЭНСЭЙ |
|
|||
Опытный Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Дрова нужны для того что бы научить ОС протоколу общения с мышью, как я понимаю.
А без дров можно как то заставить мышь работать? Просто в системе есть монополия на порты. Если установить дрова и заставить работать мышь от ком порта, то подключиться к этому порту уже будет нельзя. У меня есть компонент для делфи который позволяет работать с СОМ портами. И он неплохо работает. Я его использую для работы с одни прибором и никаких заморочек со скоростью у меня не было. Во всяком случае это решается подбором из 2х - 3х вариантов. Уточняю: я хочу использовать шариковую мышь как датчик движения. То есть фиксировать перемещение светодиодными датчиками элементов моей конструкции. Я прочитал что у всех мышей протокол обмена идентичен. Особенно в момент инициализации мыши. Хост посылает мыши 255, мышь в ответ должна послать ответ. Но я ответа так и не получил. Попробую еще поиграться со скоростью. |
|||
|
||||
СЭНСЭЙ |
|
|||
Опытный Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Настроил порт на 1200 бод, 1 стоповый бит и без четности
но мышь не ответила. Печалька. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
1200,_7_,n,1. Самый распространённый протокол ещё 7 бит в посылке требовал. Кроме того, посмотрел сейчас -- да, мышы жэ ещё на RTS/DTR реагируют. При этом это не hardware flow control -- например, взведение RTS обычно просто требуется для питания и вызывает как раз init мышы. А DTR вроде переключает 3-байт msmouse/5-байт mousesystems. А можэт наоборот. Далее, не смотри ты на этот 0xFF reset -- самый простой способ проверить работу мышки -- начать читать данные и её подвигать по столу. Если скорости правильные и мыша жывая -- то байтики к тебе пойдут. Ну и да, нет особого смысла играться с этим в программе на delphi -- есть жэ всякие hex-терминалки, avrport там и похожые. Гораздо проще, учитывая сколько всего по мелочи надо учесть при работе с COM-портом в delphi из windows, и сколько в COM-портах есть ручек RTS/DTR/bit/flow control/timeout итд, которые в avrport нажымаются одним движэнием мышы, а в своей программе вместо этого придётся разбираться со всякими TDCB, и когда его и какими константами кормить. PS Ну и да, шариковая мышь сейчас -- раритет. То есть поиграться для общего развития можно -- но в своих поделках, на мой взгляд, имеет прямой смысл использовать просто серийные оптопрерыватели и подключать их к контроллеру. Добавлено через 1 минуту и 32 секунды PPS А, и да, можэшь ещё взять какой-нибудь маленький линукс и в gpm посмотреть -- как, заработает или нет. Если да -- то и протокол в логах gpm выяснишь, и пример кода будет, и вобще писать под линукс заметно удобней, чем под 98. |
|||
|
||||
СЭНСЭЙ |
|
|||
Опытный Профиль Группа: Участник Сообщений: 432 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Я слушаю порт и двигаю мышью ,но ни одного байта от нее не идет.
Попробую еще осцилографом посмотреть, но врядли. Повтрюсь - у меня есть компонент для делфи для работы с СОМ портом. Он работает довольно сносно. Если бы удалось мышь приручить то не нужно было бы контроллер покупать и датчики. Я в схемотехнике не силен. Мне трудно освоить мат часть микроконтроллеров. Но кажется придется. |
|||
|
||||
Кальцин5Андрей |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.4.2018 Репутация: нет Всего: нет |
в 98-й можно во-первых поискать и поставить логитековские дрова мышы, а во-вторых поставить дрова serial port mouse через control panel -> add/remove hardware или как-то так.
|
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разное (электроника) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |