[an error occurred while processing this directive]
|
для ARM
case STD_SET_ADDRESS:
#ifdef DBG
DBGprint("Set Addres!");
#endif
AT91F_USB_SendZlp(AT91C_BASE_UDP);
AT91C_BASE_UDP->UDP_FADDR = (AT91C_UDP_FEN | wValue);
AT91C_BASE_UDP->UDP_GLBSTATE = (wValue) ? AT91C_UDP_FADDEN : 0;
break;
1) отсылаем нулевой пакет AT91F_USB_SendZlp(AT91C_BASE_UDP);
2) Полученный адрес(wValue) заносим в соответствующий регистр (UDP_FADDR)AT91C_BASE_UDP->UDP_FADDR = (AT91C_UDP_FEN | wValue)
и устанавливаем разрешение устройству(функции) работать, взвод флага AT91C_UDP_FEN
3) Устанавливаем состояние функции Adressed
AT91C_BASE_UDP->UDP_GLBSTATE = (wValue) ? AT91C_UDP_FADDEN : 0;