реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> STM32F439 + USB мышь, Не работает
hd44780
сообщение Nov 29 2016, 18:38
Сообщение #46


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(mantech @ Nov 29 2016, 20:28) *
Работает больше года в 24\7 . Проблемы отваливания решил отслеживанием ошибки и повторной энумерацией, как это сделано в винде.


Ну реенумерацию (реинит хоста) я запущу, эти механизмы у меня уже есть, запускается автоматически по спец флажку, но как отловить отваливание? Вставить в тот if какой-то флажок?
Кусок
Код
          if ( p_hid_data -> start_toggle == 1 ) /* handle data once */
          {
              p_hid_data -> start_toggle = 0;
              p_hid_data -> HID_Machine.cb->Decode ( p_hid_data -> HID_Machine.buff );
          }

вызывается только когда мышу двигают.

Я вроде не замечал, чтобы у меня про сдыхании мыши вызывался обработчик USBH_USR_DeviceDisconnected (устройство отключилось от хоста). Иначе бы хост реинитился бы.
Он вызывается только если я мышу вообще выдёргиваю.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
mantech
сообщение Nov 30 2016, 12:24
Сообщение #47


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(hd44780 @ Nov 29 2016, 21:38) *
вызывается только когда мышу двигают.


Конкретно здесь не подскажу, у меня контроллер EHCI, но по сути, мышь работает в режиме interrupt, скорость запроса репортов определяется хостом, у меня 5 мсек, причем не зависит от того, что я с мышью делаю, когда отваливается, контроллер дает ошибку обмена или запроса, ее отлавливаю и на обработчик...

ЗЫ. Можете проверить свою мышь usb luzerом, у меня, в зависимости от мыши, происходили отвалы раз в час, а может и чаще, и сравните с контроллером, если винда работает без отвалов, ищите ошибку у себя...
ЗЫЫ. На практике, проводные мыши у меня вообще не отваливались (правда, они были не совсем уж говно logitech и defender), а вот радио - почем зря, особенно rapoo и smartbay...

Сообщение отредактировал mantech - Nov 30 2016, 12:34
Go to the top of the page
 
+Quote Post
hd44780
сообщение Nov 30 2016, 16:35
Сообщение #48


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



угу. спасибо.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Dec 3 2016, 09:08
Сообщение #49


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Нашёл я, как это отловить, добавил туда свой флажок. В итоге курсор мыши при отвале лишь замирает менее чем на полсекунды (пока реинит хост не пройдёт), после чего нормальная работа возобновляется.

Самое интересное, что USB ядро такие случаи отрабатывает абсолютно корректно, а в USB HID драйвер просто забыли добавить обработку этого случая. Хотя может забыли вполне сознательно, т.к. у них даже при простом выдёргивании девайса хост тупо виснет и не перезапускается.

Пока проблема решена, понаблюдаю за стабильностью.

mantech , спасибо за наводку.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016