Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: откуда возникают ошибки при передаче репортов в usb hid?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Rius
есть программа для pic - чуть изменённая mchpfsusb_ghid.zip (LVR: The HID Page), который в свою очередь является примером hid прошивки от Microchip, но с кодом для обработки Input/Output и Feature репортов.
программа для теста со стороны ПК (добавил несколько функций в пример на C# - USB HID Component for C#), запрашивает input/feature репорты и выводит в список на экран.
время от времени принимается неправильный пакет:
...
00 AA BB CC DD EE FF 55 00
00 AA BB CC DD EE FF 55 00
00 AA BB CC DD EE FF 55 00 (status 0x00000000)
00 00 00 00 00 00 00 00 00 (status 0xc0000005 - USBD_STATUS_DEV_NOT_RESPONDING)
00 AA BB CC DD AA BB CC DD (status 0xc0000008 - USBD_STATUS_DATA_OVERRUN)
00 00 00 00 00 00 00 00 00
(status 0x00000000)
00 AA BB CC DD EE FF 55 00 (status 0x00000000)
...

(статус смотрится в usb мониторе)

из-за чего прошивка (и оригинальная и изменённая) может вызывать ошибку USBD_STATUS_DEV_NOT_RESPONDING ?
Rius
глюк на моем пк, вероятно из-за usb монитора, т.к. при его запуске начинают сыпаться ещё чаще, а на других компах все нормально.
Rius
нашёл, ошибка возникала при простое устройства, не хватало одной строчки:
Цитата
void USBWakeFromSuspend(void)
{
/*
* If using clock switching, this is the place to restore the
* original clock frequency.
*/
UCONbits.SUSPND = 0;
UIEbits.ACTVIE = 0;
UIEbits.IDLEIE = 1;
UIRbits.ACTVIF = 0;
}//end USBWakeFromSuspend

больше недели работает стабильно.
тему можно закрыть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.