User Tag List

Результаты опроса: Востребован ли контроллер?

Голосовавшие
49. Вы ещё не участвовали в этом опросе
  • Да

    43 87.76%
  • Нет

    2 4.08%
  • Не знаю

    4 8.16%
Показано с 1 по 10 из 100

Тема: Контроллер USB клавиатуры

Комбинированный просмотр

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

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот это вот:
    Цитата Сообщение от andreil Посмотреть сообщение
    1) опросить клавиатуру;
    2) преобразовать HID-сканикоды в матрицу;
    Весьма не много ресурсов съест, и делать это надо всего-то 5-10 раз в секунду, постоянно актуализируя массив эмуляции матрицы (например во время кадрового бланка когда есть время простоя)

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

    Контроллер по моей ссылке тоже обрабатывает клавиатуру (там же не только видеокарта, но полный терминал), при этом на частоте в 25МГц ему хватает времени еще и на VGA с полной эмуляцией VT100/52. Исходники на git есть по ссылке в статье.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

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

  3. #2

    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    А вот это ровно 3 команды на ассемблере: считать сканкод (в контроллере на Атмеге измение сканкода на порте вводе генерит прерывание), из готовой таблицы (той самой что постоянно актуализируется на шагах 1-2) используя скан код как индекс прочитать ответ, выдать этот ответ на порт.
    Все остальное время обрабатывать дисплей.

    Контроллер по моей ссылке тоже обрабатывает клавиатуру (там же не только видеокарта, но полный терминал), при этом на частоте в 25МГц ему хватает времени еще и на VGA с полной эмуляцией VT100/52. Исходники на git есть по ссылке в статье.
    Ээээ... Мы про разные вещи говорим, видимо...
    У меня одна из целей - одновременная реакция на 6 нажатых кнопок (максимум пакета данных). А это уже требует выставления битовых масок и прочего.
    Да, согласен - это очень легко оптимизируется. Но я ещё только-только получил рабочую версию. Завтра займусь в том числе и потимизациями.
    И да - как я говорил выше, сейчас почти всё время отжирает отрисовка экрана, про "прожорливость" других пунктов ничего не было сказано. Пока что отрисока одного экрана (полностью, попиксельно, на каждый пиксель по пачке команд - установка координат, цвет пикселя) занимает около 400мс... Код не мой, поставлялся вместе с библиотекой uc/GUI - подделие сумеречной китайско-индусской мысли.
    "Байт-48"

  4. #3

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    Ээээ... Мы про разные вещи говорим, видимо...
    У меня одна из целей - одновременная реакция на 6 нажатых кнопок (максимум пакета данных). А это уже требует выставления битовых масок и прочего.
    Дело не в количестве одновременно нажатых кнопок, оно может быть любым - это просто вопрос алгоритма формирования выходного результат. Говорим мы про одинаковые вещи, просто ты явно пошел не оптимальным путем (как обычно). А оптимальный (который позволил 10 лет назад на 8-Мгц 8-бит микроконтроллере с 512б (байт, Карл!) ОЗУ реализовать контроллер клавы с эмуляцией реакции матрицы в онлане, т.е. без Wait, т.е. не более чем за 4 такта реального Z80 с тактом 5Мгц) в том, чтобы когда есть вагон времени - формировать матрицу всех вариантов ответа, а по запросу хоста (когда надо отреагировать моментально) - в 3 команды брать уже готовый результат.

    Если еще не понятно, я говорю в этом примере о контроллере от Caro, который в двух сотнях Орионов работает (и ХЗ сколько РК и ему подобных).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

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

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

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

Похожие темы

  1. Конвертер USB -> PS/2 для клавиатуры
    от Ewgeny7 в разделе Устройства ввода
    Ответов: 118
    Последнее: 02.01.2022, 23:39
  2. Ответов: 27
    Последнее: 14.08.2018, 04:48
  3. БезWaitовый контроллер клавиатуры
    от caro в разделе Устройства ввода
    Ответов: 68
    Последнее: 01.07.2015, 05:42
  4. USB контроллер матрицы клавиатуры.
    от fan в разделе Устройства ввода
    Ответов: 2
    Последнее: 25.07.2007, 00:43

Ваши права

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