День добрый.
У меня вопрос к тем, кто знает USB и работал с клавиатурным интерфейсом.
Надо разработать устройство на МК, эмулятор клавиатуры, чтобы вместо человека печатал всякий бред (быстро и качественно)
Запустил для начала из IAR пример HID-клавиатуры (это ж как раз то, что мне нужно!). Пример там печатает один символ при нажатии на одну клавишу... Подправил немного код, чтобы печатал несколько символов вместо одного - и тут затык! smile3046.gif Открываю блокнот, запускаю эмулятор и вижу, что некоторые символы "выпадают"... Дебаг-сообщения в DBGU показывают, что на момент отправки пакета IN с новыми статусами клавиш USB-device был свободен (pEndPoint->status == IDLE). После отправки USBD_Write() возвращает значение USBD_STATUS_SUCCESS. Со стороны контроллера все выглядит так, будто пакет успешно передан.
На ПК снифферю эмулятор клавиатуры и вижу, что некоторых передач по прерыванию со статусом нажатых клавишщ не хватает (выглядит так, будто и не приходило на ПК ничего)... laughing.gif
Если ввожу паузы в программу от передачи к передаче, то все работает, но мне нужна максимальная скорость набора текста. От лишних пауз настроение портится, не хочется как-то заморачиваться потом над "точной настройкой пауз", дающей максимум скорости при минимуме ошибок, тем более, что передача по прерываниям должна обеспечивать доставку пакетов... crying.gif...
Вот и не зна что делать, прошу помощи... Кто может, подскажете можт чё? То ли, статус обновляется как-то неправильно (невовремя)? Или может быть такое, чтобы контроллер ПК принимал пакет, говорил устройству, что принял, но в ОС не выдавал?... cranky.gif
Заранее длагодарен всем ответившим за помощь... Спасибо!