User Tag List

Показано с 1 по 10 из 107

Тема: Вектор-06Ц. подключение USB-мыши.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавил в контроллер USB-мыши регистры, предоставляющие информацию о смещении мыши, а не её координаты.
    Сделал универсальный тест контроллера мыши.
    Исходники во вложении к первому сообщению темы.
    На фотках: контроллер отключен, подключен к порту "ПУ", и "ВУ".

    Тесты наводят на мысли, что математику в контроллере нужно переводить на работу с положительными числами, как это сделано в PS/2-мышах. Там смещения всегда положительные числа, а направление указано специальными флагами.
    Работать с переменными типа int удобнее (всегда используется сложение, не нужно заранее контролировать направление), и сама USB-мышь выдаёт значения именно типа int. Но при замедлении мыши делением скорости на 8, возникают трудности с отрицательными значениями, так как простое смещение значения на 3 бита вправо (деление на 8), "округляет" полученное значение до "-1" (FFh) даже если смещение изначально было например только "-3", хотя желательно при этом получить "0".
    А при округлении положительных смещений, все значения смещения от 1 до 7, в результате округляются до "0" ( как и ожидается ).
    Вот и размышляю, как поступить, дрейф значений не значительный, и особо для пользователя не заметен.
    На универсальном тесте этот дрейф значений заметен по выводимым на экран значениям координат курсора мыши.
    В верхней строке, 2е и 3е значение - это содержимое регистров контроллера, в них проблем от округлений значений нет из-за особенностей вычислений координат (вычисления ведутся постоянно, без корректировки значений).
    В нижней строке, 2е и 3е значение - это координаты курсора, вычисляемые на основе значений регистров смещения.

    В любом случае, корректировка работы с отрицательными числами в контроллере, ни как не влияет на работу с самим контроллером со стороны пользователя. Просто в результате, пользователь сможет получать более корректные значения.

    Кстати, мысля сейчас посетила, вариант стандарта значений смещения как в PS/2-мышах, можно так-же в контроллер засунуть, на отдельные регистры.
    Последний раз редактировалось KTSerg; 13.08.2024 в 08:14.

    Эти 2 пользователя(ей) поблагодарили KTSerg за это полезное сообщение:

    ivagor(13.08.2024), svofski(13.08.2024)

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

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

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

Похожие темы

  1. Ответов: 574
    Последнее: 23.08.2024, 09:14
  2. Ответов: 82
    Последнее: 04.07.2022, 12:10
  3. Ответов: 1
    Последнее: 27.04.2022, 11:52
  4. Ответов: 15
    Последнее: 20.01.2022, 17:03
  5. Ответов: 4
    Последнее: 23.06.2016, 00:02

Ваши права

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