⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_drv.h

📁 Contiki是一个开源
💻 H
📖 第 1 页 / 共 3 页
字号:
#define Usb_disable_hnp_error_interrupt()         (OTGIEN  &= ~(1<<HNPERRE))#define Is_hnp_error_interrupt_enabled()          ((OTGIEN &  (1<<HNPERRE))   ? TRUE : FALSE)   //! acks HNP error interrupt#define Usb_ack_hnp_error_interrupt()             (OTGINT  &= ~(1<<HNPERRI))   //! tests if a HNP error occurs#define Is_usb_hnp_error_interrupt()              ((OTGINT &   (1<<HNPERRI)) ? TRUE : FALSE)   //! enables role exchange interrupt#define Usb_enable_role_exchange_interrupt()      (OTGIEN  |=  (1<<ROLEEXE))   //! disables role exchange interrupt#define Usb_disable_role_exchange_interrupt()     (OTGIEN  &= ~(1<<ROLEEXE))#define Is_role_exchange_interrupt_enabled()      ((OTGIEN &  (1<<ROLEEXE))   ? TRUE : FALSE)   //! acks role exchange interrupt#define Usb_ack_role_exchange_interrupt()         (OTGINT  &= ~(1<<ROLEEXI))   //! tests if a role exchange occurs#define Is_usb_role_exchange_interrupt()          ((OTGINT &   (1<<ROLEEXI)) ? TRUE : FALSE)   //! enables B device connection error interrupt#define Usb_enable_bconnection_error_interrupt()  (OTGIEN  |=  (1<<BCERRE))   //! disables B device connection error interrupt#define Usb_disable_bconnection_error_interrupt() (OTGIEN  &= ~(1<<BCERRE))#define Is_bconnection_error_interrupt_enabled()  ((OTGIEN &  (1<<BCERRE))   ? TRUE : FALSE)   //! acks B device connection error interrupt#define Usb_ack_bconnection_error_interrupt()     (OTGINT  &= ~(1<<BCERRI))   //! tests if a B device connection error occurs#define Is_usb_bconnection_error_interrupt()      ((OTGINT &   (1<<BCERRI))  ? TRUE : FALSE)   //! enables VBus error interrupt#define Usb_enable_vbus_error_interrupt()         (OTGIEN  |=  (1<<VBERRE))   //! disables VBus error interrupt#define Usb_disable_vbus_error_interrupt()        (OTGIEN  &= ~(1<<VBERRE))#define Is_vbus_error_interrupt_enabled()         ((OTGIEN &  (1<<VBERRE))   ? TRUE : FALSE)   //! acks VBus error interrupt#define Usb_ack_vbus_error_interrupt()            (OTGINT  &= ~(1<<VBERRI))   //! tests if a VBus error occurs#define Is_usb_vbus_error_interrupt()             ((OTGINT &   (1<<VBERRI))  ? TRUE : FALSE)   //! enables SRP interrupt#define Usb_enable_srp_interrupt()                (OTGIEN  |=  (1<<SRPE))   //! disables SRP interrupt#define Usb_disable_srp_interrupt()               (OTGIEN  &= ~(1<<SRPE))#define Is_srp_interrupt_enabled()                ((OTGIEN &  (1<<SRPE))   ? TRUE : FALSE)   //! acks SRP interrupt#define Usb_ack_srp_interrupt()                   (OTGINT  &= ~(1<<SRPI))   //! tests if a SRP occurs#define Is_usb_srp_interrupt()                    ((OTGINT &   (1<<SRPI))    ? TRUE : FALSE)//! @}//! @ingroup usbdriver//! @defgroup USB_device_driver USB device controller drivers//! These macros manage the USB Device controller.//! @{   //! initiates a remote wake-up   #define Usb_initiate_remote_wake_up()             (UDCON   |=  (1<<RMWKUP))   //! detaches from USB bus   #define Usb_detach()                              (UDCON   |=  (1<<DETACH))   //! attaches to USB bus   #define Usb_attach()                              (UDCON   &= ~(1<<DETACH))   //! test if remote wake-up still running   #define Is_usb_pending_remote_wake_up()           ((UDCON & (1<<RMWKUP)) ? TRUE : FALSE)   //! test if the device is detached   #define Is_usb_detached()                         ((UDCON & (1<<DETACH)) ? TRUE : FALSE)   //! returns the USB device interrupts (interrupt enabled)   #define Usb_get_device_interrupt()                (UDINT   &   (1<<UDIEN))   //! acks the USB device interrupts (interrupt enabled)   #define Usb_ack_all_device_interrupt()            (UDINT   =  ~(1<<UDIEN))   //! enables remote wake-up interrupt   #define Usb_enable_remote_wake_up_interrupt()     (UDIEN   |=  (1<<UPRSME))   //! disables remote wake-up interrupt   #define Usb_disable_remote_wake_up_interrupt()    (UDIEN   &= ~(1<<UPRSME))#define Is_remote_wake_up_interrupt_enabled()     ((UDIEN &  (1<<UPRSME))   ? TRUE : FALSE)   //! acks remote wake-up#define Usb_ack_remote_wake_up_start()            (UDINT   = ~(1<<UPRSMI))   //! tests if remote wake-up still running#define Is_usb_remote_wake_up_start()             ((UDINT &   (1<<UPRSMI))  ? TRUE : FALSE)   //! enables resume interrupt#define Usb_enable_resume_interrupt()             (UDIEN   |=  (1<<EORSME))   //! disables resume interrupt#define Usb_disable_resume_interrupt()            (UDIEN   &= ~(1<<EORSME))#define Is_resume_interrupt_enabled()             ((UDIEN &  (1<<EORSME))   ? TRUE : FALSE)   //! acks resume#define Usb_ack_resume()                          (UDINT   = ~(1<<EORSMI))   //! tests if resume occurs#define Is_usb_resume()                           ((UDINT &   (1<<EORSMI))  ? TRUE : FALSE)   //! enables wake-up interrupt#define Usb_enable_wake_up_interrupt()            (UDIEN   |=  (1<<WAKEUPE))   //! disables wake-up interrupt#define Usb_disable_wake_up_interrupt()           (UDIEN   &= ~(1<<WAKEUPE))#define Is_swake_up_interrupt_enabled()           ((UDIEN &  (1<<WAKEUPE))   ? TRUE : FALSE)   //! acks wake-up#define Usb_ack_wake_up()                         (UDINT   = ~(1<<WAKEUPI))   //! tests if wake-up occurs#define Is_usb_wake_up()                          ((UDINT &   (1<<WAKEUPI)) ? TRUE : FALSE)   //! enables USB reset interrupt#define Usb_enable_reset_interrupt()              (UDIEN   |=  (1<<EORSTE))   //! disables USB reset interrupt#define Usb_disable_reset_interrupt()             (UDIEN   &= ~(1<<EORSTE))#define Is_reset_interrupt_enabled()              ((UDIEN &  (1<<EORSTE))   ? TRUE : FALSE)   //! acks USB reset#define Usb_ack_reset()                           (UDINT   = ~(1<<EORSTI))   //! tests if USB reset occurs#define Is_usb_reset()                            ((UDINT &   (1<<EORSTI))  ? TRUE : FALSE)   //! enables Start Of Frame Interrupt#define Usb_enable_sof_interrupt()                (UDIEN   |=  (1<<SOFE))   //! disables Start Of Frame Interrupt#define Usb_disable_sof_interrupt()               (UDIEN   &= ~(1<<SOFE))#define Is_sof_interrupt_enabled()                ((UDIEN &  (1<<SOFE))   ? TRUE : FALSE)   //! acks Start Of Frame#define Usb_ack_sof()                             (UDINT   = ~(1<<SOFI))   //! tests if Start Of Frame occurs#define Is_usb_sof()                              ((UDINT &   (1<<SOFI))    ? TRUE : FALSE)   //! enables suspend state interrupt#define Usb_enable_suspend_interrupt()            (UDIEN   |=  (1<<SUSPE))   //! disables suspend state interrupt#define Usb_disable_suspend_interrupt()           (UDIEN   &= ~(1<<SUSPE))#define Is_suspend_interrupt_enabled()            ((UDIEN &  (1<<SUSPE))   ? TRUE : FALSE)   //! acks Suspend#define Usb_ack_suspend()                         (UDINT   = ~(1<<SUSPI))   //! tests if Suspend state detected#define Is_usb_suspend()                          ((UDINT &   (1<<SUSPI))   ? TRUE : FALSE)   //! enables USB device address#define Usb_enable_address()                      (UDADDR  |=  (1<<ADDEN))   //! disables USB device address#define Usb_disable_address()                     (UDADDR  &= ~(1<<ADDEN))   //! sets the USB device address#define Usb_configure_address(addr)               (UDADDR  =   (UDADDR & (1<<ADDEN)) | ((U8)addr & MSK_UADD))   //! returns the last frame number#define Usb_frame_number()                        ((U16)((((U16)UDFNUMH) << 8) | ((U16)UDFNUML)))   //! tests if a crc error occurs in frame number#define Is_usb_frame_number_crc_error()           ((UDMFN & (1<<FNCERR)) ? TRUE : FALSE)//! @}//! @ingroup usbdriver//! @defgroup usb_gen_ep USB endpoint drivers//! These macros manage the common features of the endpoints.//! @{   //! selects the endpoint number to interface with the CPU#define Usb_select_endpoint(ep)                   (UENUM = (U8)ep )   //! get the currently selected endpoint number#define Usb_get_selected_endpoint()               (UENUM )   //! resets the selected endpoint#define Usb_reset_endpoint(ep)                    (UERST   =   1 << (U8)ep, UERST  =  0)   //! enables the current endpoint#define Usb_enable_endpoint()                     (UECONX  |=  (1<<EPEN))   //! enables the STALL handshake for the next transaction#define Usb_enable_stall_handshake()              (UECONX  |=  (1<<STALLRQ))   //! resets the data toggle sequence#define Usb_reset_data_toggle()                   (UECONX  |=  (1<<RSTDT))   //! disables the current endpoint#define Usb_disable_endpoint()                    (UECONX  &= ~(1<<EPEN))   //! disables the STALL handshake#define Usb_disable_stall_handshake()             (UECONX  |=  (1<<STALLRQC))   //! selects endpoint interface on CPU#define Usb_select_epnum_for_cpu()                (UECONX  &= ~(1<<EPNUMS))   //! tests if the current endpoint is enabled#define Is_usb_endpoint_enabled()                 ((UECONX & (1<<EPEN))    ? TRUE : FALSE)   //! tests if STALL handshake request is running#define Is_usb_endpoint_stall_requested()         ((UECONX & (1<<STALLRQ)) ? TRUE : FALSE)   //! configures the current endpoint#define Usb_configure_endpoint_type(type)         (UECFG0X =   (UECFG0X & ~(MSK_EPTYPE)) | ((U8)type << 6))   //! configures the current endpoint direction#define Usb_configure_endpoint_direction(dir)     (UECFG0X =   (UECFG0X & ~(1<<EPDIR))  | ((U8)dir))   //! configures the current endpoint size#define Usb_configure_endpoint_size(size)         (UECFG1X =   (UECFG1X & ~MSK_EPSIZE) | ((U8)size << 4))   //! configures the current endpoint number of banks#define Usb_configure_endpoint_bank(bank)         (UECFG1X =   (UECFG1X & ~MSK_EPBK)   | ((U8)bank << 2))   //! allocates the current configuration in DPRAM memory#define Usb_allocate_memory()                     (UECFG1X |=  (1<<ALLOC))   //! un-allocates the current configuration in DPRAM memory#define Usb_unallocate_memory()                   (UECFG1X &= ~(1<<ALLOC))   //! acks endpoint overflow interrupt#define Usb_ack_overflow_interrupt()              (UESTA0X &= ~(1<<OVERFI))   //! acks endpoint underflow memory#define Usb_ack_underflow_interrupt()             (UESTA0X &= ~(1<<UNDERFI))   //! acks Zero Length Packet received#define Usb_ack_zlp()                             (UESTA0X &= ~(1<<ZLPSEEN))   //! returns data toggle#define Usb_data_toggle()                         ((UESTA0X&MSK_DTSEQ) >> 2)   //! returns the number of busy banks#define Usb_nb_busy_bank()                        (UESTA0X &   MSK_NBUSYBK)   //! tests if at least one bank is busy#define Is_usb_one_bank_busy()                    ((UESTA0X &  MSK_NBUSYBK) == 0 ? FALSE : TRUE)   //! tests if current endpoint is configured#define Is_endpoint_configured()                  ((UESTA0X &  (1<<CFGOK))   ? TRUE : FALSE)   //! tests if an overflows occurs#define Is_usb_overflow()                         ((UESTA0X &  (1<<OVERFI))  ? TRUE : FALSE)   //! tests if an underflow occurs#define Is_usb_underflow()                        ((UESTA0X &  (1<<UNDERFI)) ? TRUE : FALSE)   //! tests if a ZLP has been detected#define Is_usb_zlp()                              ((UESTA0X &  (1<<ZLPSEEN)) ? TRUE : FALSE)   //! returns the control direction#define Usb_control_direction()                   ((UESTA1X &  (1<<CTRLDIR)) >> 2)   //! returns the number of the current bank#define Usb_current_bank()                        ( UESTA1X & MSK_CURRBK)   //! clears FIFOCON bit#define Usb_ack_fifocon()                         (UEINTX &= ~(1<<FIFOCON))   //! acks NAK IN received#define Usb_ack_nak_in()                          (UEINTX &= ~(1<<NAKINI))   //! acks NAK OUT received#define Usb_ack_nak_out()                         (UEINTX &= ~(1<<NAKOUTI))   //! acks receive SETUP#define Usb_ack_receive_setup()                   (UEINTX &= ~(1<<RXSTPI))   //! acks reveive OUT#define Usb_ack_receive_out()                     (UEINTX &= ~(1<<RXOUTI), Usb_ack_fifocon())   //! acks STALL sent#define Usb_ack_stalled()                         (MSK_STALLEDI=   0)   //! acks IN ready#define Usb_ack_in_ready()                        (UEINTX &= ~(1<<TXINI), Usb_ack_fifocon())   //! Kills last bank#define Usb_kill_last_in_bank()                   (UENTTX |= (1<<RXOUTI))   //! tests if endpoint read allowed#define Is_usb_read_enabled()                     (UEINTX&(1<<RWAL))   //! tests if endpoint write allowed#define Is_usb_write_enabled()                    (UEINTX&(1<<RWAL))   //! tests if read allowed on control endpoint#define Is_usb_read_control_enabled()             (UEINTX&(1<<TXINI))   //! tests if SETUP received#define Is_usb_receive_setup()                    (UEINTX&(1<<RXSTPI))   //! tests if OUT received#define Is_usb_receive_out()                      (UEINTX&(1<<RXOUTI))   //! tests if IN ready#define Is_usb_in_ready()                         (UEINTX&(1<<TXINI))   //! sends IN#define Usb_send_in()                             (UEINTX &= ~(1<<FIFOCON))   //! sends IN on control endpoint#define Usb_send_control_in()                     (UEINTX &= ~(1<<TXINI))   //! frees OUT bank#define Usb_free_out_bank()                       (UEINTX &= ~(1<<FIFOCON))   //! acks OUT on control endpoint#define Usb_ack_control_out()                     (UEINTX &= ~(1<<RXOUTI))   //! enables flow error interrupt#define Usb_enable_flow_error_interrupt()         (UEIENX  |=  (1<<FLERRE))   //! enables NAK IN interrupt#define Usb_enable_nak_in_interrupt()             (UEIENX  |=  (1<<NAKINE))   //! enables NAK OUT interrupt#define Usb_enable_nak_out_interrupt()            (UEIENX  |=  (1<<NAKOUTE))   //! enables receive SETUP interrupt#define Usb_enable_receive_setup_interrupt()      (UEIENX  |=  (1<<RXSTPE))   //! enables receive OUT interrupt#define Usb_enable_receive_out_interrupt()        (UEIENX  |=  (1<<RXOUTE))   //! enables STALL sent interrupt#define Usb_enable_stalled_interrupt()            (UEIENX  |=  (1<<STALLEDE))   //! enables IN ready interrupt#define Usb_enable_in_ready_interrupt()           (UEIENX  |=  (1<<TXINE))   //! disables flow error interrupt#define Usb_disable_flow_error_interrupt()        (UEIENX  &= ~(1<<FLERRE))   //! disables NAK IN interrupt#define Usb_disable_nak_in_interrupt()            (UEIENX  &= ~(1<<NAKINE))   //! disables NAK OUT interrupt#define Usb_disable_nak_out_interrupt()           (UEIENX  &= ~(1<<NAKOUTE))   //! disables receive SETUP interrupt#define Usb_disable_receive_setup_interrupt()     (UEIENX  &= ~(1<<RXSTPE))   //! disables receive OUT interrupt#define Usb_disable_receive_out_interrupt()       (UEIENX  &= ~(1<<RXOUTE))   //! disables STALL sent interrupt#define Usb_disable_stalled_interrupt()           (UEIENX  &= ~(1<<STALLEDE))   //! disables IN ready interrupt#define Usb_disable_in_ready_interrupt()          (UEIENX  &= ~(1<<TXIN))   //! returns FIFO byte for current endpoint#define Usb_read_byte()                           (UEDATX)   //! writes byte in FIFO for current endpoint#define Usb_write_byte(byte)                      (UEDATX  =   (U8)byte)   //! returns number of bytes in FIFO current endpoint (16 bits)#define Usb_byte_counter()                        ((((U16)UEBCHX) << 8) | (UEBCLX))   //! returns number of bytes in FIFO current endpoint (8 bits)#define Usb_byte_counter_8()                      ((U8)UEBCLX)   //! tests the general endpoint interrupt flags#define Usb_interrupt_flags()                     (UEINT)   //! tests the general endpoint interrupt flags#define Is_usb_endpoint_event()                   (Usb_interrupt_flags() != 0x00)//! @}//! @ingroup usbdriver//! @defgroup host_management USB host controller drivers//! These macros manage the USB Host controller.//! @{   //! allocates the current configuration in DPRAM memory   #define Host_allocate_memory()                 (UPCFG1X |=  (1<<ALLOC))   //! un-allocates the current configuration in DPRAM memory   #define Host_unallocate_memory()               (UPCFG1X &= ~(1<<ALLOC))   //! enables USB Host function   #define Host_enable()                          (USBCON |= (1<<HOST))   #ifndef    SOFEN   #define    SOFEN           0       //For AVRGCC, SOFEN bit missing in default sfr file   #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -