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

User Tag List

Страница 11 из 20 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя
Показано с 101 по 110 из 200

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

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

    По умолчанию

    Работа с мышью через контроллер, имеет скрытые подводные камни.
    Возможно проявляться проблема будет в неравномерности движения курсора, возможно это будет не очень заметно, а возможно и очень заметно. Только реальный эксперимент, реализованный в железе, сможет показать, юзабельно это, или будет раздражать...

    Всё будет зависеть от того, как будет реализовано общение контроллера с мышью и с Вектором.

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

    Если контроллер просто будет постоянно опрашивать мышь, с частотой (приблизительно равной) прерываний Вектора, то возникнет проблема синхронизации, так как нет синхронизации Вектора и контроллера.
    Если для синхронизации будут использоваться сами запросы, возникнет проблема предоставления не актуальных данных, если запросы от Вектора будут не регулярными, из-за приостановки или пропуска прерываний.

    Вот какие-то такие мысли в голову лезут...
    Последний раз редактировалось KTSerg; 11.08.2023 в 20:57.

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

    По умолчанию

    Контроллер должен сам регулярно опрашивать мышь и копить приращения по X и Y (и желательно колесо). Если при обращении вектора текущее накопленное приращение больше байта, то нужно выдать максимум и вычесть его из накопленного приращения.

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

    Кстати, использование контроллера с накоплением в нем приращений позволяет вектору опрашивать мышь не по прерываниям.

  3. #103
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    982
    Спасибо Благодарностей отдано 
    441
    Спасибо Благодарностей получено 
    402
    Поблагодарили
    224 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Если контроллер будет возвращать сразу координаты курсора на экране, то опрашивать его можно будет быстро, просто и в любое удобное время, независимо от прерываний. А приращениями всякими, отслеживанием выхода за границу экрана и прочим пусть занимается контроллер. Понадобятся вдруг приращения в программе -- вычти новую считанную координату из предыдущей, это не сложно.
    Ну, это просто может быть одной и плюшек, т.е. для "координат курсора" просто отдельные "регистры" контроллера выделить.
    Если к девборде есть исходники хаба для usb-мыши/клавы, то думаю именно usb имеет смысл юзать, а не ps/2.
    Хотя, судя по реализации на длугих железках, usb реализован на прерываниях, можно наверное и от Вектора запрос потерять.
    Для принятия таких решений, нужно конкретное железо знать/ковырять.

  5. #105
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,245
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дико извиняюсь, что врываюсь в вашу дискуссию, как слон в посудную лавку, но сейчас это одна из немногих живых тем на форуме, приходится почитывать ;-)

    Не очень понимаю куда вас вывезет кривая, но технически пока получается, что это будет нечто сложнее чем на одной ATMega8. Тогда, почему бы сразу не сделать SuperComboDevice (или МегаШадки), добавив в него мышь, клавиатуру и VGA?
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  6. #106
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    982
    Спасибо Благодарностей отдано 
    441
    Спасибо Благодарностей получено 
    402
    Поблагодарили
    224 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    это будет нечто сложнее чем на одной ATMega8.
    Atmega32u4 с USB-входом потянет легко, думаю, и ps/2 тоже.

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Тогда, почему бы сразу не сделать SuperComboDevice (или МегаШадки), добавив в него мышь, клавиатуру и VGA?
    Добавить vga в котроллер -- это сразу на порядок его усложнит и потребует переход на шину ВУ вместо ПУ, но зато там можно будет ещё организовать и аппаратный курсор на экране.

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

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Ну, это просто может быть одной и плюшек, т.е. для "координат курсора" просто отдельные "регистры" контроллера выделить.
    Ещё раз повторю идею: порт А, например, -- координата Х, порт В -- координата Y, порт С -- всё остальное, в т.ч. управление контроллером. В результате со стороны Вектора имеем очень простое и быстрое ПО. Вычислить приращение, если нужно -- разность двух байт, тоже проще, чем переключать контроллер... Хотя, кому нужно это приращение, если будем получать готовую координату?

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

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

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Хотя, кому нужно это приращение, если будем получать готовую координату?
    Если я возьму и видео-режим переключу с высокого на низкое разрешение ненадолго. Как теперь координату интерпретировать?

    Мыши прирастают, и этим ценны. Absolute mode хорош когда есть touch panel с фиксированным разрешением и пиксел спэйсингом.

    Жаль конечно, что идея карты с мульти-фифо отвергается. Мне уже виделось как я настраиваю SPI mode и clock prescaler и пишу в какой-нить SPI flash через ПУ. Ну пусть будет мышь. Только если можно, в relative mode (со смещениями) пожалуйста.

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

    По умолчанию

    Уже писал о проблеме с абсолютным режимом, попробую еще раз. Проблема возникает при долгом (или очень долгом) смещении мыши в одну сторону. С абсолютными возможны два варианта, которые неприемлемы в общем случае (годятся только при управлении курсором в рамках одного экрана): или насыщение или заворот. Думаю понятно, что в общем случае это может привести или к залипанию или к "метаниям".

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

    Еще один как мне кажется важный момент - простота и повторяемость реализации. Если контроллер ограничится буферизацией значений от мыши и переводом последовательный<->параллельный, то это можно сравнительно легко повторить и в эмуляторах и в v06cc.

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

    По умолчанию

    [QUOTE=ivagor;1183816]Думаю понятно, что в общем случае это может привести или к залипанию или к "метаниям".
    - - - Добавлено - - -

    Именно поэтому absolute mode используют только в touch panels. Но даже там встречаются контроллеры которым необходима калибровка от центра.
    Это "не наш метод" (с)

  11. #110
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    982
    Спасибо Благодарностей отдано 
    441
    Спасибо Благодарностей получено 
    402
    Поблагодарили
    224 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PPC Посмотреть сообщение
    Если я возьму и видео-режим переключу с высокого на низкое разрешение ненадолго. Как теперь координату интерпретировать?
    В случае разрешений Вектора -- нет никаких проблем. С учётом того, что режим 512х256 -- это просто экранные плоскости со смещением, то можно использовать те же 256 значений, курсор даже не сдвинется при изменении разрешения. А при желании можно добавить "двойную точность", добавить девятый бит по горизонтали в порт С...

    Цитата Сообщение от PPC Посмотреть сообщение
    Absolute mode хорош когда есть touch panel с фиксированным разрешением и пиксел спэйсингом.
    А на Векторе и есть, фактически, фиксированное разрешение.

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

    Цитата Сообщение от ivagor Посмотреть сообщение
    Проблема возникает при долгом (или очень долгом) смещении мыши в одну сторону. С абсолютными возможны два варианта, которые неприемлемы в общем случае (годятся только при управлении курсором в рамках одного экрана): или насыщение или заворот. Думаю понятно, что в общем случае это может привести или к залипанию или к "метаниям".
    Все эти проблемы легко решаемы в контроллере -- можно и отслеживать границы экрана, и завороты с метаниями, и регулировать чуствительность мыши. А если это не делать в контроллере, то все эти проблемы лягут на плечи Вектора.

    Цитата Сообщение от ivagor Посмотреть сообщение
    то это можно сравнительно легко повторить и в эмуляторах и в v06cc.
    Насчёт эмуляторов соглашусь, сделать там такой контроллер будет сложнее...

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

    Цитата Сообщение от PPC Посмотреть сообщение
    встречаются контроллеры которым необходима калибровка от центра.
    Калибровка мыши "от центра" -- это просто её поднять и перенести в другое, более удобное место на коврике.

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

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

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

Эту тему просматривают: 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

Ваши права

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