www.pudn.com > USBDriver.rar > D12CI.h
/****************************************Copyright (c)************************************************** ** ¹ãÖÝÖÜÁ¢¹¦µ¥Æ¬»ú·¢Õ¹ÓÐÏÞ¹«Ë¾ ** ÑÐ ¾¿ Ëù ** ²úÆ·Ò»²¿ ** ** http://www.zlgmcu.com ** ** ÎÄ ¼þ Ãû: D12CI.h ** ×îºóÐÞ¸ÄÈÕÆÚ: 2004Äê7ÔÂ2ÈÕ ** Ãè Êö: PDIUSBD12 É豸¶ËÇý¶¯³ÌÐò ½Ó¿Ú¿ØÖÆÇý¶¯²ãÍ·Îļþ ** °æ ±¾: V1.0 **********************************************************************************************************/ #ifndef __D12CI_H__ #define __D12CI_H__ /** D12 Ïà¹Ø¶¨Òå ***/ #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 #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 /************************************************************ ** º¯ÊýÃû³Æ: INT16U readchipid(void) ** ¹¦ÄÜÃèÊö: ¶ÁȡоƬID ** Êä¡¡ Èë: ÎÞ ** Êä ¡¡ ³ö: оƬµÄIDºÅ ************************************************************/ INT16U readchipid(void); /************************************************************ ** º¯ÊýÃû³Æ: void D12_SetAddressEnable(INT8U bAddress,INT8U bEnable) ** ¹¦ÄÜÃèÊö: ÉèÖõØÖ·Ê¹ÄÜ ** Êä¡¡ Èë: INT8U bAddress: µØÖ· INT8U bEnable : 0 --- ½ûÖ¹ 1 --- ʹÄÜ ** Êä ¡¡ ³ö: ÎÞ ************************************************************/ void D12_SetAddressEnable(INT8U bAddress, INT8U bEnable); /************************************************************ ** º¯ÊýÃû³Æ: void D12_SetEndpointEnable(INT8U bEnable) ** ¹¦ÄÜÃèÊö: ÉèÖö˵ãʹÄÜ ** Êä¡¡ Èë: INT8U bEnable : 0 --- ½ûÖ¹ 1 --- ÔÊÐí ** Êä ¡¡ ³ö: ÎÞ ************************************************************/ void D12_SetEndpointEnable(INT8U bEnable); /************************************************************ ** º¯ÊýÃû³Æ: void D12_SetMode(INT8U bConfig,INT8U bClkDiv) ** ¹¦ÄÜÃèÊö: ģʽÉèÖà ** Êä¡¡ Èë: INT8U bConfig: ģʽֵ INT8U bClkDiv: ·ÖƵϵÊý ** Êä ¡¡ ³ö: ÎÞ ************************************************************/ void D12_SetMode(INT8U bConfig, INT8U bClkDiv); /************************************************************ ** º¯ÊýÃû³Æ: void D12_SetDMA(INT8U bMode) ** ¹¦ÄÜÃèÊö: ÉèÖÃDMA¹¤×÷·½Ê½ÉèÖà ** Êä¡¡ Èë: INT8U bMode: ģʽֵ ** Êä ¡¡ ³ö: ÎÞ ************************************************************/ void D12_SetDMA(INT8U bMode); /************************************************************ ** º¯ÊýÃû³Æ: INT16U D12_ReadInterruptRegister(void) ** ¹¦ÄÜÃèÊö: ¶ÁÈ¡ÖжϼĴæÆ÷Öµ ** Êä¡¡ Èë: ÎÞ ** Êä ¡¡ ³ö: ÖжϼĴæÆ÷Öµ ************************************************************/ INT16U D12_ReadInterruptRegister(void); /************************************************************ ** º¯ÊýÃû³Æ: INT8U D12_SelectEndpoint(INT8U bEndp) ** ¹¦ÄÜÃèÊö: ¶ËµãÑ¡Ôñ ** Êä¡¡ Èë: INT8U bEndp£º ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 ** Êä ¡¡ ³ö: ¶Á³öµÄ×Ö½Ú ************************************************************/ INT8U D12_SelectEndpoint(INT8U bEndp); /************************************************************ ** º¯ÊýÃû³Æ: INT8U D12_ReadLastTransactionStatus(INT8U bEndp) ** ¹¦ÄÜÃèÊö: ¶ÁÈ¡×îºó´¦Àí״̬¼Ä´æÆ÷¬ ** Êä¡¡ Èë: INT8U bEndp£º ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 ** Êä ¡¡ ³ö: ¶Ëµã×îºó´¦ÀíµÄ״̬ ************************************************************/ INT8U D12_ReadLastTransactionStatus(INT8U bEndp); /************************************************************ ** º¯ÊýÃû³Æ: INT8U D12_ReadEndpointStatus(INT8U bEndp) ** ¹¦ÄÜÃèÊö: ¶ÁÈ¡¶Ëµã״̬ ** Êä¡¡ Èë: INT8U bEndp£º ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 ** Êä ¡¡ ³ö: ¶Ëµã״̬ ************************************************************/ INT8U D12_ReadEndpointStatus(INT8U bEndp); /************************************************************ ** º¯ÊýÃû³Æ: INT8U D12_ReadEndpointStatus(INT8U bEndp) ** ¹¦ÄÜÃèÊö: ÉèÖö˵ã״̬ ** Êä¡¡ Èë: INT8U bEndp£º ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 INT8U bStalled: ״ֵ̬ ** Êä ¡¡ ³ö: ¶Ëµã״̬ ************************************************************/ void D12_SetEndpointStatus(INT8U bEndp,INT8U bStalled); /************************************************************ ** º¯ÊýÃû³Æ: void D12_SendResume(void) ** ¹¦ÄÜÃèÊö: ´«Êä»Ö¸´ ** Êä¡¡ Èë: ÎÞ ** Êä ¡¡ ³ö: ÎÞ ************************************************************/ void D12_SendResume(void); /************************************************************ ** º¯ÊýÃû³Æ: INT16U D12_ReadCurrentFrameNumber(void) ** ¹¦ÄÜÃèÊö: ¶ÁÈ¡µ±Ç°Ö¡ºÅ ** Êä¡¡ Èë: ÎÞ ** Êä ¡¡ ³ö: µ±Ç°Ö¡ºÅ ************************************************************/ INT16U D12_ReadCurrentFrameNumber(void); /************************************************************ ** º¯ÊýÃû³Æ: INT8U D12_ReadEndpoint(INT8U endp,INT8U len,INT8U * buf) ** ¹¦ÄÜÃèÊö: ¶ÁÈ¡¶ËµãÊý¾Ý ** Êä¡¡ Èë: INT8U endp: ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5 INT8U len: Òª¶ÁÈ¡µÄÊý¾Ý³¤¶È INT8U * buf: ½ÓÊÕÊý¾ÝÖ¸Õë ** Êä ¡¡ ³ö: ʵ¼Ê¶ÁµÃµÄ×Ö½ÚÊý ************************************************************/ INT8U D12_ReadEndpoint(INT8U endp, INT8U len, INT8U * buf); /************************************************************ ** º¯ÊýÃû³Æ: INT8U D12_WriteEndpoint(INT8U endp,INT8U len,INT8U * buf) ** ¹¦ÄÜÃèÊö: °ÑÊý¾ÝдÈë¶Ëµã ** Êä¡¡ Èë: INT8U endp: ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5 INT8U len: ҪдÈëµÄÊý¾Ý³¤¶È INT8U * buf: ·¢ËÍÊý¾ÝÖ¸Õë ** Êä ¡¡ ³ö: ʵ¼ÊдÈëµÄ×Ö½ÚÊý ************************************************************/ INT8U D12_WriteEndpoint(INT8U endp, INT8U len, INT8U * buf); /************************************************************ ** º¯ÊýÃû³Æ: void D12_AcknowledgeEndpoint(INT8U endp) ** ¹¦ÄÜÃèÊö: ÉèÖö˵ãÓ¦´ð ** Êä¡¡ Èë: INT8U endp: ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5 ** Êä ¡¡ ³ö: ÎÞ ************************************************************/ void D12_AcknowledgeEndpoint(INT8U endp); /************************************************************ ** º¯ÊýÃû³Æ: void D12_ClearBuff(INT8U endp) ** ¹¦ÄÜÃèÊö: ÇåÖ¸¶¨¶ËµãµÄ»º³åÇø(°üÀ¨Ë«»º³åÇø)© ** Êä¡¡ Èë: INT8U endp: ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5 ** Êä ¡¡ ³ö: ÎÞ ************************************************************/ void D12_ClearBuff(INT8U endp); /************************************************************ ** º¯ÊýÃû³Æ: void disconnect_USB(void) ** ¹¦ÄÜÃèÊö: ¶Ï¿ªUSB×ÜÏß ************************************************************/ void disconnect_USB(void); /************************************************************ ** º¯ÊýÃû³Æ: void connect_USB(void) ** ¹¦ÄÜÃèÊö: Á¬½ÓUSB×ÜÏß ************************************************************/ void connect_USB(void); /************************************************************ ** º¯ÊýÃû³Æ: void reconnect_USB(void) ** ¹¦ÄÜÃèÊö: ÖØÐÂÁ¬½ÓUSB×ÜÏß ************************************************************/ void reconnect_USB(void); #endif