📄 d12ci.h
字号:
//D12CI.h
#ifndef __D12CI_H__
#define __D12CI_H__
#define D12_DATA 0X8002
#define D12_COMMAND 0X8003
#define D12_NOLAZYCLOCK 0x02
#define D12_CLOCKRUNNING 0x04
#define D12_INTERRUPTMODE 0x08
#define D12_SOFTCONNECT 0x10
#define D12_ENDP_NONISO 0x00
#define D12_ENDP_ISOOUT 0x40
#define D12_ENDP_ISOIN 0x80
#define D12_ENDP_ISOIO 0xC0
#define D12_CLOCK_12M 0x03
#define D12_CLOCK_4M 0x0b
#define D12_SETTOONE 0x40
#define D12_SOFONLY 0x80
#define D12_DMASINGLE 0x00
#define D12_BURST_4 0x01
#define D12_BURST_8 0x02
#define D12_BURST_16 0x03
#define D12_DMAENABLE 0x04
#define D12_DMA_INTOKEN 0x08
#define D12_AUTOLOAD 0x10
#define D12_NORMALPLUSSOF 0x20
#define D12_ENDP4INTENABLE 0x40
#define D12_ENDP5INTENABLE 0x80 // bug fixed in V2.1
#define D12_INT_ENDP0OUT 0x01
#define D12_INT_ENDP0IN 0x02
#define D12_INT_ENDP1OUT 0x04
#define D12_INT_ENDP1IN 0x08
#define D12_INT_ENDP2OUT 0x10
#define D12_INT_ENDP2IN 0x20
#define D12_INT_BUSRESET 0x40
#define D12_INT_SUSPENDCHANGE 0x80
#define D12_INT_EOT 0x0100
#define D12_SETUPPACKET 0x20
#define D12_BUFFER0FULL 0x20
#define D12_BUFFER1FULL 0x40
#define D12_FULLEMPTY 0x01
#define D12_STALL 0x02
void outportb(unsigned int Addr,unsigned char Data);
unsigned char inportb(unsigned int Addr);
void D12_SetAddressEnable(uchar bAddress,uchar bEnable);
void D12_SetEndpointEnable(uchar bEnable);
void D12_SetMode(uchar bConfig,uchar bClkDiv);
void D12_SetDMA(uchar bMode);
ushort D12_ReadInterruptRegister(void);
uchar D12_SelectEndpoint(uchar bEndp);
uchar D12_ReadLastTransactionStatus(uchar bEndp);
void D12_SetEndpointStatus(uchar bEndp,uchar bStalled);
uchar D12_ReadEndpointStatus(uchar bEndp);
ushort D12_ReadCurrentFrameNumber(void);
uchar D12_ReadEndpoint(uchar endp,uchar len,uchar * buf);
uchar D12_WriteEndpoint(uchar endp,uchar len ,uchar * buf);
void D12_AcknowledgeEnppoint(uchar endp);
#endif //__D12CI_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -