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

📄 usbdef.h

📁 PDIUSBD12的嵌入式软件
💻 H
字号:
/*
*   usbdef.h
*
*   Common def's for USB device communications stack.
*   MJB Nov 2005
*/

#ifndef __USBDEF_H__
#define __USBDEF_H__


#define MAX_EP_MASK        7

#define D12_EP0_OUT        0     /* D12 endpoint index values */
#define D12_EP0_IN         1
#define D12_EP1_OUT        2
#define D12_EP1_IN         3
#define D12_EP2_OUT        4
#define D12_EP2_IN         5

#define EP0_MAX_PACKET_SIZE    16    /* D12 on-chip endpoint buffer sizes */
#define EP1_MAX_PACKET_SIZE    4
#define EP2_MAX_PACKET_SIZE    64

#define USB_IDLE           0
#define USB_TRANSMIT       1
#define USB_RECEIVE        2

#define USB_CLASS_CODE_TEST_CLASS_DEVICE  0xDC
#define USB_SUBCLASS_CODE_TEST_CLASS_D12  0xA0
#define USB_PROTOCOL_CODE_TEST_CLASS_D12  0xB0


typedef union _usb_flags
{
	struct _flags
	{
		uchar timer_tick      : 1 ;
		uchar bus_reset       : 1 ;
		uchar suspend         : 1 ;
		uchar setup_packet    : 1 ;
		uchar remote_wakeup   : 1 ;
		uchar in_isr          : 1 ;
		uchar control_state   : 2 ;

		uchar dev_configured  : 1 ;
		uchar test_mode       : 1 ;
		uchar reserved_2      : 1 ;
		uchar reserved_3      : 1 ;
		uchar dma_eot         : 1 ;
		uchar dma_state       : 2 ;
		uchar power_down      : 1 ;
	} bits;
	ushort value;
} USB_FLAGS;

extern  USB_FLAGS    USBflags;

extern  bool   USB_active;                 /* Device is attached */
extern  bool   USB_BulkInTxReady;          /* D12 is ready to accept data for TX on EP2 */
extern  bool   USB_InterruptInTxReady;     /* D12 is ready to accept data for TX on EP1 */
extern  ushort USB_ErrorFlags[];           /* D12 error status words, 1 per EP (debug usage) */


/* Function prototypes -- usbisr.c */

_INTERRUPT_ void usb_isr(void);

void  bus_reset( void );
void  suspend_change( void );
void  dma_eot( void );
void  control_in_handler( void );
void  control_out_handler( void );
void  control_dispatcher( void );
void  interrupt_in_handler( void );
void  endpoint1_out_handler( void );
void  bulk_in_handler( void );
void  bulk_out_handler( void );
void  UpdateUSBErrorFlags( uchar, uchar );


#endif   /* __USBDEF_H__ */

⌨️ 快捷键说明

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