📄 c4sdcc.h
字号:
#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// TGE fx2bug #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 HS_USBVECT (5 << 2)#define EP0ACK_USBVECT (6 << 2)#define SPARE0_USBVECT (7 << 2)#define IN0BUF_USBVECT (8 << 2)#define OUT0BUF_USBVECT (9 << 2)#define IN1BUF_USBVECT (10 << 2)#define OUT1BUF_USBVECT (11 << 2)#define INOUT2BUF_USBVECT (12 << 2)#define INOUT4BUF_USBVECT (13 << 2)#define INOUT6BUF_USBVECT (14 << 2)#define INOUT8BUF_USBVECT (15 << 2)#define IBN_USBVECT (16 << 2)#define SPARE1_USBVECT (17 << 2)#define EP0PINGNAK_USBVECT (18 << 2)#define EP1PINGNAK_USBVECT (19 << 2)#define EP2PINGNAK_USBVECT (20 << 2)#define EP4PINGNAK_USBVECT (21 << 2)#define EP6PINGNAK_USBVECT (22 << 2)#define EP8PINGNAK_USBVECT (23 << 2)#define ERRLIM_USBVECT (24 << 2)#define SPARE2_USBVECT (25 << 2)#define SPARE3_USBVECT (26 << 2)#define SPARE4_USBVECT (27 << 2)#define EP2PIDERR_USBVECT (28 << 2)#define EP4PIDERR_USBVECT (29 << 2)#define EP6PIDERR_USBVECT (30 << 2)#define EP8PIDERR_USBVECT (31 << 2)typedef struct{ BYTE length; BYTE type;}DSCR;typedef struct // Device Descriptor{ BYTE length; // Descriptor length ( = sizeof(DEVICEDSCR) ) BYTE type; // Decriptor type (Device = 1) BYTE spec_ver_minor; // Specification Version (BCD) minor BYTE spec_ver_major; // Specification Version (BCD) major BYTE dev_class; // Device class BYTE sub_class; // Device sub-class BYTE protocol; // Device sub-sub-class BYTE max_packet; // Maximum packet size WORD vendor_id; // Vendor ID WORD product_id; // Product ID WORD version_id; // Product version ID BYTE mfg_str; // Manufacturer string index BYTE prod_str; // Product string index BYTE serialnum_str; // Serial number string index BYTE configs; // Number of configurations}DEVICEDSCR;typedef struct // Device Qualifier Descriptor{ BYTE length; // Descriptor length ( = sizeof(DEVICEQUALDSCR) ) BYTE type; // Decriptor type (Device Qualifier = 6) BYTE spec_ver_minor; // Specification Version (BCD) minor BYTE spec_ver_major; // Specification Version (BCD) major BYTE dev_class; // Device class BYTE sub_class; // Device sub-class BYTE protocol; // Device sub-sub-class BYTE max_packet; // Maximum packet size BYTE configs; // Number of configurations BYTE reserved0;}DEVICEQUALDSCR;typedef struct{ BYTE length; // Configuration length ( = sizeof(CONFIGDSCR) ) BYTE type; // Descriptor type (Configuration = 2) WORD config_len; // Configuration + End Points length BYTE interfaces; // Number of interfaces BYTE index; // Configuration number BYTE config_str; // Configuration string BYTE attrib; // Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu BYTE power; // Power requirement (div 2 ma)}CONFIGDSCR;typedef struct{ BYTE length; // Interface descriptor length ( - sizeof(INTRFCDSCR) ) BYTE type; // Descriptor type (Interface = 4) BYTE index; // Zero-based index of this interface BYTE alt_setting; // Alternate setting BYTE ep_cnt; // Number of end points BYTE class; // Interface class BYTE sub_class; // Interface sub class BYTE protocol; // Interface sub sub class BYTE interface_str; // Interface descriptor string index}INTRFCDSCR;typedef struct{ BYTE length; // End point descriptor length ( = sizeof(ENDPNTDSCR) ) BYTE type; // Descriptor type (End point = 5) BYTE addr; // End point address BYTE ep_type; // End point type BYTE mp_L; // Maximum packet size BYTE mp_H; BYTE interval; // Interrupt polling interval}ENDPNTDSCR;typedef struct{ BYTE length; // String descriptor length BYTE type; // Descriptor type}STRINGDSCR;typedef struct{ BYTE cntrl; // End point control register BYTE bytes; // End point buffer byte count}EPIOC;typedef struct { BYTE length; BYTE *dat; BYTE count; BYTE status;}I2CPCKT;//-----------------------------------------------------------------------------// Globals//-----------------------------------------------------------------------------extern code BYTE USB_AutoVector;extern WORD pDeviceDscr;extern WORD pDeviceQualDscr;extern WORD pHighSpeedConfigDscr;extern WORD pFullSpeedConfigDscr; extern volatile WORD pConfigDscr;extern volatile WORD pOtherConfigDscr;extern WORD pStringDscr;extern code DEVICEDSCR DeviceDscr;extern code DEVICEQUALDSCR DeviceQualDscr;extern code CONFIGDSCR HighSpeedConfigDscr;extern code CONFIGDSCR FullSpeedConfigDscr;extern code STRINGDSCR StringDscr;extern code DSCR UserDscr;extern I2CPCKT volatile I2CPckt;//-----------------------------------------------------------------------------// Function Prototypes//-----------------------------------------------------------------------------// fx2bug #ifdef CHIPREV_B// fx2bug extern void EZUSB_IRQ_CLEAR(void);// fx2bug #endifextern void EZUSB_Discon(BOOL renum);#define EZUSB_Renum() EZUSB_Discon(TRUE);extern void EZUSB_Susp(void);extern void EZUSB_Resume(void);extern void EZUSB_Delay1ms(void) _naked;extern void EZUSB_Delay(WORD ms);extern CONFIGDSCR xdata* EZUSB_GetConfigDscr(BYTE ConfigIdx);extern INTRFCDSCR xdata* EZUSB_GetIntrfcDscr(BYTE ConfigIdx, BYTE IntrfcIdx, BYTE AltSetting);extern STRINGDSCR xdata* EZUSB_GetStringDscr(BYTE StrIdx);extern DSCR xdata* EZUSB_GetDscr(BYTE index, DSCR* dscr, BYTE type);extern void EZUSB_InitI2C(void);extern BOOL EZUSB_WriteI2C_(BYTE addr, BYTE length, BYTE xdata *dat);extern BOOL EZUSB_ReadI2C_(BYTE addr, BYTE length, BYTE xdata *dat);extern BOOL EZUSB_WriteI2C(BYTE addr, BYTE length, BYTE xdata *dat);extern BOOL EZUSB_ReadI2C(BYTE addr, BYTE length, BYTE xdata *dat);extern void EZUSB_WaitForEEPROMWrite(BYTE addr);extern void modify_endpoint_stall(BYTE epid, BYTE stall) _naked;#endif // FX2_H#endif // FW_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -