bool Endpoint_ConfigureEndpoint(const uint8_t Number, const uint8_t Type, const uint8_t Direction, const uint16_t Size, const uint8_t Banks) { Endpoint_SelectEndpoint(Number); Endpoint_EnableEndpoint(); UECFG1X = 0; UECFG0X = ((Type << EPTYPE0) | Direction); UECFG1X = ((1 << ALLOC) | Banks | Endpoint_BytesToEPSizeMask(Size)); return Endpoint_IsConfigured(); }
void Endpoint_ConfigureEndpoint_P(const uint8_t EndpointNum, const uint16_t EndpointSize, const uint8_t UECFG0Xdata, const uint8_t UECFG1Xdata) { Endpoint_SelectEndpoint(EndpointNum); Endpoint_EnableEndpoint(); UECFG0X = UECFG0Xdata; UECFG1X = ((UECFG1X & (1 << ALLOC)) | UECFG1Xdata | Endpoint_BytesToEPSizeMask(EndpointSize)); Endpoint_AllocateMemory(); }
uint8_t Endpoint_BytesToEPSizeMaskDynamic(const uint16_t Size) { return Endpoint_BytesToEPSizeMask(Size); }