at90usb162 будь он неладен! проконтролируйте инициализацию? http://electronix.ru/forum/index.php?showtopic=118741
Потому как условие "сброс" не привязано к протоколу, только к временным интервалам.
По началу запрещал всё, кроме RXSTPI - не ловил ничего.
разрешаю все USB прерывания, в
UD* (vector11) не попадаю, в UE* (vector12) прилетаю, как и ожидается из-за 0-й точки. Но причина - взведён TXINI. При сбросе флага в обработчике или запрете TXINE в прерывание не попадаю вообще. Что происходит, подскажите? Хотя бы пните в нужную сторону, что ли ...
LUFA смотрел, читал,что там делается - "вообще" - понимаю, "вот эта строчка" - 95%, но картины в целом не возникает из-за размазаных по файлам дефайнов, условной компиляции и прочих прелестей. тестовый проект на основе темплейта так и не запустил. :( А надо то - проинициализироваться, да поднять 2 EndPoint-a.
А у него что, эрраты нет вообще?! А я в даташите уже 2 ошибки нашёл между тем.
Описал с логами и исходниками по ссылке.
Считаю в прерываниях количество вызовов, и в основной петле выплёвываю на экран.
R.
> 00 5B
> 00 D3
> 00 47
> 00 BF
> 00 36
> 00 AB
> 00 22
> 00 9A
-skip-
> 00 5C
> 00 D4
> 00 4B
> 00 C0
> 01 E2
> 02 E2
> 03 E2
> 04 E2
> 05 E2
Тело "переполняемого" сейчас такое:
ISR(USB_COM_vect, ISR_BLOCK)
{
// Endpoint events
//LED_ON;
cntCOM++;
if (UEINT & (1<<TXINI))
{
UEINT &= ~(1<<TXINI);
}
}