Цитата(uriy @ Jun 9 2010, 11:46)

Есть еще в кейле пример HID устройства. Может там будет что-то полезное. Keil\ARM\Boards\Keil\MCB1700\USBHID
Смотрел этот пример там все еще более запутано (по крайней мере для меня):
кусок обработчика прерывания:
Код
#if USB_SOF_EVENT
/* Start of Frame Interrupt */
if (disr & FRAME_INT) {
USB_SOF_Event();
}
#endif
функция USB_SOF_Event():
Код
/*
* USB Start of Frame Event Callback
* Called automatically on USB Start of Frame Event
*/
#if USB_SOF_EVENT
void USB_SOF_Event (void) {
}
#endif
Что именно необходимо делать в этом прерывании остается загадкой...
Цитата(dimka76 @ Jun 9 2010, 12:01)

Это когда устройство (ваше) подключено к хосту( компьютеру) тогда и будут прерывания с интервалом 1 мсек. А когда вы свое устройство от хоста отключите и пустите в свободное плавание, что станется с вашей ОС ?
у меня в данный момент USB кабель отключен от макетной платы, а прерывания по FRAME возникают (правда пока нечем измерить периодичность, но за секунду несколько сотен набирается). Да и в даташите: "For isochronous endpoints, the FRAME bit in USBDevIntSt is set every 1 ms." - насколько я понял он взводится автоматически, а не хостом. Поправьте меня, если я неправильно понял этот момент.
Сообщение отредактировал alvy - Jun 9 2010, 05:13