Важная информация

User Tag List

Страница 8 из 20 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя
Показано с 71 по 80 из 200

Тема: Вектор06Ц, клава и мышь PS/2 через "ПУ"

  1. #71
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Эмуляторы мыша уж как-нибудь изобразить смогут, было бы что изображать.
    Осмысленный контроллер должен иметь два порта на которых будет постоянно обновляющаяся дельта перемещения +-127. Наверное прекрасно хватило бы и одного порта, допустим старший бит признак X/Y, а младшие 7 +- 63 дельта.
    Потому и говорил, что скорее всего понадобится ТРИ порта, так как если перемещения засунуть в один байт, то разрядность перемещения получится слишком маленькая, а ведь нужно ещё состояние кнопок получать.


    Цитата Сообщение от ivagor
    В идеале - да. Но все зависит от задач, например для редактора шрифтов текущий вариант вполне нормальный, там ограничивающим фактором является скорость человека. А вот для требовательных игрушек типа warcraft или wolf 1/10 времени на опрос мыши - непозволительная роскошь. Другое дело, что таких игрушек для вектора не будет, а редактор шрифтов - вот он, осталось добавить туда мышь.
    Ну, с реал-тайм активными игрушками, как ни жаль, на Векторе будет тяжеловато, из-за известных причин...
    А вот что-то типа пошаговых стратегий, где персу нужно указать, куда пойти, что взять, и т.п. ... даже без контроллера, подключенной к "ПУ" мыши вполне достаточно, и игровой процесс будет "приятнее", я так думаю...

  2. #72
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    скорее всего понадобится ТРИ порта
    Если минимизировать число портов для чтения, то достаточно двух - в одном выбор номера (в него запись) в другом - данные выбранного номера (отсюда читаем).

  3. #73
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    795
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    +- 64 точки, то есть четверть экрана, за 1/50 секунды это совсем не маленькая разрядность по-моему. Буду рад увидеть софт, который демонстрирует недостаточность такой разрядности. Но кнопки конечно да, без кнопок никак.
    Больше игр нет

  4. #74
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    - - - Добавлено - - -

    Цитата Сообщение от svofski Посмотреть сообщение
    +- 64 точки, то есть четверть экрана, за 1/50 секунды это совсем не маленькая разрядность по-моему. Буду рад увидеть софт, который демонстрирует недостаточность такой разрядности. Но кнопки конечно да, без кнопок никак.
    Често говоря, за 4 года, я уже забыл, сколько разрядов данных мыши я использовал в тестовой программе, которая гоняет графический курсор по экрану.

  5. #75
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    допустим старший бит признак X/Y, а младшие 7 +- 63 дельта.
    Достаточно одного порта на чтение: старший бит признак начала пакета, в пакете три байта dX, dY, кнопки. Вроде COM-портовая мышь так и делала. Сейчас такую уже фиг найдёшь наверное.

  6. #76
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Достаточно одного порта на чтение: старший бит признак начала пакета, в пакете три байта dX, dY, кнопки. Вроде COM-портовая мышь так и делала. Сейчас такую уже фиг найдёшь наверное.
    На сколько я понял, речь шла не о реальном протоколе ps/2 мыши, а о том, как данные для Вектора должен предоставить воображаемый контроллер.
    Глянул исходник, там в протоколе ps/2-мыши, при запросе данных, в ответ приходит три байта:
    в первом - кнопки и флаги направления смещения
    второй - смещение по Х, видимо все 8 бит используются, т.е. максимум +-255 позиций.
    Третий - смещение по Y, так-же +-255 позиций.

    В тестовой программе, я не увидел, что резал разрядность, к предыдущей позиции просто прибавлял полученные данные.
    Хотя, может и глаз замылился.

  7. #76
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #77
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    975
    Спасибо Благодарностей отдано 
    430
    Спасибо Благодарностей получено 
    396
    Поблагодарили
    221 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если делать аппаратный суперконтроллер для мыши на трёх портах, то логичнее передавать не смещение, а сразу координаты курсора -- по вертикали как раз хватит 0-256 в восьми битах, а по горизонтали можно один бит (младший) передавать вместе с кнопками в третьем порту, чтобы можно было получить 0-512. Я так думаю...

  9. #78
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Разности - это более общий вариант, а координаты все же частный случай когда управляем курсором на экране. Проблема в том, что обработка абсолютных координат с насыщением по краям экрана. А если вдруг мы поворачиваемся в wolf3d, то никаких насыщений нет, поворачиваемся пока не укачает.

  10. #79
    Activist
    Регистрация
    17.03.2009
    Адрес
    Moscow
    Сообщений
    464
    Спасибо Благодарностей отдано 
    20
    Спасибо Благодарностей получено 
    48
    Поблагодарили
    32 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Разности - это более общий вариант
    (имхо) идеально будет, если они будут накапливаться в случае невозможности считывания (чем-то же надо занять суперконтроллер).
    Profi v3.2 512K+color; Profi 6.2B; МС-0511

  11. #80
    Activist Аватар для PPC
    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    335
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Потому и говорил, что скорее всего понадобится ТРИ порта, так как если перемещения засунуть в один байт, то разрядность перемещения получится слишком маленькая, а ведь нужно ещё состояние кнопок получать.
    Наверное можно из регистра "состояния кнопок" сделать статус регистр c 2 зарезервированными битами: изменение по x > x_threshold, изменение по y > y_threshold. Ну и добавить control register сквозной, в котором 1 bit под координату и 7 под threshold. 2 записи в control reg для установки thresholds по x и по y

    Тогда если мышь не движется или threshold не достигнут, достаточно поллить один регистр "умного контроллера". Mouse clicks будут свежие каждые 20ms, а набежавшие cмещения надо читать только по появлению бита в статус регистре. Чтение должно ессно гасить соответствующий бит.

    Можно вообще грубую схему сделать, где под координату 2 бита в статус регистре: один из них бит знака, другой - признак превышения порога смещения. Но это уже дискретный джойстик с фильтром получается.

    Вообще, плясять наверное стоит от софта. Хотелось бы хоть на эмуле поглядеть как это будет с софтиной сопрягаться. Там свои некоторые хитрости (если мы про окна и редактор фонтов). Ничего принципиально нерешаемого нет, но придется делать несколько обработчиков маус кликов:
    - в menuitem data для получения соответствующего кода акселератора
    - в клик над видимой областью окна (для кнопок и overlapped окон)
    Но это детали

Страница 8 из 20 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 57
    Последнее: 23.09.2020, 02:22
  2. Ответов: 19
    Последнее: 23.11.2015, 21:24
  3. Ответов: 6
    Последнее: 12.02.2010, 23:16
  4. Ответов: 6
    Последнее: 20.11.2007, 11:29
  5. Клава "Байта"
    от andreil в разделе Устройства ввода
    Ответов: 1
    Последнее: 04.08.2005, 11:25

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •