📄 testheader.h
字号:
#ifndef TESTHEADER_H
#define TESTHEADER_H
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef bit BOOL;
#define TRUE 1
#define FALSE 0
#define DEVICE_DSCR 0x01
#define CONFIG_DSCR 0x02
#define STRING_DSCR 0x03
#define INTRFC_DSCR 0x04
#define ENDPNT_DSCR 0x05
#define SC_GET_STATUS 0x00
#define SC_CLEAR_FEATURE 0x01
#define SC_RESERVED 0x02
#define SC_SET_FEATURE 0x03
#define SC_SET_ADDRESS 0x05
#define SC_GET_DESCRIPTOR 0x06
#define SC_SET_DESCRIPTOR 0x07
#define SC_GET_CONFIGURATION 0x08
#define SC_SET_CONFIGURATION 0x09
#define SC_GET_INTERFACE 0x0a
#define SC_SET_INTERFACE 0x0b
#define SC_SYNC_FRAME 0x0c
#define SC_ANCHOR_LOAD 0xa0
#define GD_DEVICE 0x01
#define GD_CONFIGURATION 0x02
#define GD_STRING 0x03
#define GS_DEVICE 0x80
#define GS_INTERFACE 0x81
#define GS_ENDPOINT 0x82
#define FT_DEVICE 0x00
#define FT_ENDPOINT 0x02
typedef struct
{
BYTE length;
BYTE type;
BYTE spec_ver_minor;
BYTE spec_ver_major;
BYTE dev_class;
BYTE sub_class;
BYTE protocol;
BYTE max_packet;
WORD vendor_id;
WORD product_id;
WORD version_id;
BYTE mfg_str;
BYTE prod_str;
BYTE serialnum_str;
BYTE configs;
}DEVICEDSCR;
typedef struct
{
BYTE length;
BYTE type;
WORD config_len;
BYTE interfaces;
BYTE index;
BYTE config_str;
BYTE attrib;
BYTE power;
}CONFIGDSCR;
typedef struct
{
BYTE length;
BYTE type;
BYTE index;
BYTE alt_setting;
BYTE ep_cnt;
BYTE class;
BYTE sub_class;
BYTE protocol;
BYTE interface_str;
}INTRFCDSCR;
typedef struct
{
BYTE length;
BYTE type;
BYTE addr;
BYTE ep_type;
BYTE mp_L;
BYTE mp_H;
BYTE interval;
}ENDPNTDSCR;
typedef struct
{
BYTE length;
BYTE type;
}STRINGDSCR;
#define INT0_VECT 0
#define TMR0_VECT 1
#define INT1_VECT 2
#define TMR1_VECT 3
#define COM0_VECT 4
#define TMR2_VECT 5
#define WKUP_VECT 6
#define COM1_VECT 7
#define USB_VECT 8
#define I2C_VECT 9
#define INT4_VECT 10
#define INT5_VECT 11
#define INT6_VECT 12
#define SUDAV_USBVECT (0 << 2)
#define SOF_USBVECT (1 << 2)
#define SUTOK_USBVECT (2 << 2)
#define SUSP_USBVECT (3 << 2)
#define URES_USBVECT (4 << 2)
#define SPARE_USBVECT (5 << 2)
#define IN0BUF_USBVECT (6 << 2)
#define OUT0BUF_USBVECT (7 << 2)
#define IN1BUF_USBVECT (8 << 2)
#define OUT1BUF_USBVECT (9 << 2)
#define IN2BUF_USBVECT (10 << 2)
#define OUT2BUF_USBVECT (11 << 2)
#define IN3BUF_USBVECT (12 << 2)
#define OUT3BUF_USBVECT (13 << 2)
#define IN4BUF_USBVECT (14 << 2)
#define OUT4BUF_USBVECT (15 << 2)
#define IN5BUF_USBVECT (16 << 2)
#define OUT5BUF_USBVECT (17 << 2)
#define IN6BUF_USBVECT (18 << 2)
#define OUT6BUF_USBVECT (19 << 2)
#define IN7BUF_USBVECT (20 << 2)
#define OUT7BUF_USBVECT (21 << 2)
#define MSB(word) (BYTE)(((WORD)word >> 8) & 0xff)
#define LSB(word) (BYTE)((WORD)word & 0xff)
#define SWAP_ENDIAN(word) ((BYTE*)&word)[0] ^= ((BYTE*)&word)[1];\
((BYTE*)&word)[1] ^= ((BYTE*)&word)[0];\
((BYTE*)&word)[0] ^= ((BYTE*)&word)[1]
#define EZUSB_IRQ_CLEAR() EXIF &= ~0x10
#define EZUSB_CLEAR_RSMIRQ() (EICON &= ~0x20)
#define EZUSB_STALL_EP0() EP0CS |= bmEPSTALL
#define EZUSB_STALL_EP(ep_id) EPIO[ep_id].cntrl = bmEPSTALL
#define EZUSB_UNSTALL_EP(ep_id) EPIO[ep_id].cntrl = 0
#define EZUSB_RESET_DATA_TOGGLE(ep) TOGCTL = (((ep & 0x80) >> 3) + (ep & 0x07));\
TOGCTL |= 0x20
#define EZUSB_EXTWAKEUP() (USBCS & bmRWAKEUP)
#define EZUSB_SET_EP_BYTES(ep_id,count) EPIO[ep_id].bytes = count
#define EZUSB_UNARM_EP(ep_id) EPIO[ep_id].cntrl = bmEPBUSY
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -