//! usb_select_endpoint_interrupt. //! //! This function select the endpoint where an event occurs and returns the //! number of this endpoint. If no event occurs on the endpoints, this //! function returns 0. //! //! //! @param none //! //! @return endpoint number. //! U8 usb_select_enpoint_interrupt(void) { U8 interrupt_flags; U8 ep_num; ep_num = 0; interrupt_flags = Usb_interrupt_flags(); while(ep_num < MAX_EP_NB) { if (interrupt_flags & 1) { return (ep_num); } else { ep_num++; interrupt_flags = interrupt_flags >> 1; } } return 0; }
//! usb_select_endpoint_interrupt. //! //! This function select the endpoint where an event occurs and returns the //! number of this endpoint. If no event occurs on the endpoints, this //! function returns 0. //! //! @return endpoint number. uint8_t usb_select_enpoint_interrupt(void) { uint8_t interrupt_flags; uint8_t ep_num; ep_num = 0; interrupt_flags = Usb_interrupt_flags(); while(ep_num < 9) { if (interrupt_flags & 1) { return (ep_num); } else { ep_num++; interrupt_flags = interrupt_flags >> 1; } } return 0; }