[an error occurred while processing this directive]
|
Используется связка ISP1581+T89C51CC02. Получаю пакет setup, запрос дескриптора Device, отправляю и жду установки флага об окончании передачи. В трети случаев на этой проверке и зависаю, т.е. флаг не устанавливается. Вот текст программы:
switch (descriptor_type)
{
/* дескриптор устройства */
case DEVICE:
{
data_to_transfer = sizeof(usb_device_descriptor);
pbuffer = &(usb_device_descriptor.bLength);
Set_index(1);
Len_LSB(0x12);
Len_MSB(0);
while(data_to_transfer!=0)
{
Usb_write_byte(*pbuffer);
pbuffer++;
data_to_transfer--;
}
while(!(USB_INT2.VALUE&MSK_EP0TX));///////////Зависаем здесь
USB_INT2.BITS.EP0TX=0;
Set_index(0);
Usb_set_CONTROLFUN(2);
break;
}
Часто проскакиваю, получаю set Adress, устанавливаю, получаю setup с запросом дескриптора Device и снова висну на этой проверке.
Посмотрел, вместо ожидаемого TX приходит Reset (!!!) и после него setup с запросом дескриптора Device.
В чём может быть причина?
E-mail: info@telesys.ru