www.pudn.com > USBDriver.rar > D12Driver.h
/****************************************Copyright (c)**************************************************
** ¹ãÖÝÖÜÁ¢¹¦µ¥Æ¬»ú·¢Õ¹ÓÐÏÞ¹«Ë¾
** ÑÐ ¾¿ Ëù
** ²úÆ·Ò»²¿
**
** http://www.zlgmcu.com
**
** ÎÄ ¼þ Ãû: D12Driver.h
** ×îºóÐÞ¸ÄÈÕÆÚ: 2004Äê7ÔÂ2ÈÕ
** Ãè Êö: PDIUSBD12 É豸¶ËÇý¶¯³ÌÐò Ó¦ÓòãÍ·Îļþ
** °æ ±¾: V1.0
**********************************************************************************************************/
/**************** ¶¨Òå USB ÊÕ·¢´íÎóÂë ***************************/
#define USB_NO_ERR 0x00 //ÕýÈ·
#define USB_ERR_NO_CONFIG 0x01 //USB×ÜÏßδÅäÖÃÍê³É´íÎó
#define USB_ERR_BUFF_INVALID 0x02 //½ÓÊÕ»ò·¢ËÍ»º³åÇø´íÎó§
#define USB_ERR_WR_TIMEOUT 0x03 //½ÓÊÕ»ò·¢Ëͳ¬Ê±´íÎó
/*************** ¶¨Òå USB ½ÓÊÕ»ò·¢ËÍ¿ØÖÆ¿é **********************/
typedef struct tagUsb_Struct
{
INT8U *pBuff[OS_LOWEST_PRIO]; //½ÓÊÕ»ò·¢ËÍ»º³åÇøÖ¸ÕëÊý×é
INT32U Max[OS_LOWEST_PRIO]; //½ÓÊÕ»ò·¢ËÍ×Ö½ÚÊý, Ò²×÷Ϊ½ÓÊÕ»ò·¢ËÍÍê³É±êÖ¾
INT32U Cnt; //½ÓÊÕ»ò·¢ËÍ×Ö½Ú¼ÆÊýÆ÷
INT8U Grp; //µÈ´ý×é
INT8U Tbl[OS_RDY_TBL_SIZE]; //µÈ´ýÁбí
INT8U Sem; //¶Ëµã×ÊÔ´ÐźÅÁ¿
INT8U Prio; //µ±Ç°Õ¼Óøö˵ãµÄÈÎÎñÓÅÏȼ¶
}CTRL_USB;
/*************** Setup°ü´¦ÀíÈÎÎñ¶ÑÕ» ****************************/
extern OS_STK TaskSetupStk[128];
/**************** D12Driver.cÄÚ²¿Ê¹Óú¯Êý ************************/
INT8U USB_GetHighPrio(CTRL_USB *pUsb);
void USB_InsertPrio(CTRL_USB *pUsb,INT8U prio);
void USB_DelPrio(CTRL_USB *pUsb,INT8U prio);
INT8U USB_ReadPort(INT8U endp,CTRL_USB *pUsb,INT32U len,INT8U *recbuff,INT16U timeout);
INT8U USB_WritePort(INT8U endp,INT32U eppsize,INT8U buffnums,CTRL_USB *pUsb,
INT8U *sendbuff,INT32U len,INT16U timeout);
void USB_ReadISR(CTRL_USB *pUsb,INT8U endp,INT32U eppsize,INT8U buffnums);
void USB_WriteISR(CTRL_USB *pUsb,INT8U endp,INT32U eppsize,INT8U buffnums);
INT8U USB_RW_Result(INT8U endp,CTRL_USB *pUsb,INT16U timeout);
INT8U USB_RW_Param(CTRL_USB *pUsb,INT32U len,INT8U *pbuff);
/****************************************************
D12Driver.c ÌṩµÄAPIº¯Êý
*****************************************************/
/************************************************************
** º¯ÊýÃû³Æ: INT8U Init_D12(void)
** ¹¦ÄÜÃèÊö: ÉèÖÃD12ÓëÓ²¼þµÄÁ¬½Ó, ³õʼ»¯D12, ¸´Î»D12
** Êä¡¡Èë: ÎÞ
** Êä¡¡³ö: 0: ³õʼ»¯³É¹¦ 1: ³õʼ»¯Ê§°Ü
************************************************************/
extern INT8U Init_D12(void);
/************************************************************
** º¯ÊýÃû³Æ: INT8U ReadPort1(INT32U len,INT8U *recbuff,INT16U timeout)
** ¹¦ÄÜÃèÊö: ´Ó¶Ëµã 1 ¶Á³ö len¸ö×Ö½Ú
** Êä¡¡Èë: INT32U len: Òª¶Á³öµÄ×Ö½ÚÊý£¨È¡Öµ·¶Î§Îª0x00000001 ~ 0xFFFFFFFF£©
INT8U *recbuff: ½ÓÊÕÊý¾ÝÖ¸Õë
INT16U timeout: ³¬Ê±Ê±¼ä, ±ØÐë´óÓÚµÈÓÚ0
** Êä¡¡³ö: 0: ¶Á³ö³É¹¦ > 0: ¶Á³öʧ°Ü(´íÎóÂë)
************************************************************/
extern INT8U ReadPort1(INT32U len,INT8U *recbuff,INT16U timeout);
/************************************************************
** º¯ÊýÃû³Æ: INT8U ReadPort2(INT32U len,INT8U *recbuff,INT16U timeout)
** ¹¦ÄÜÃèÊö: ´Ó¶Ëµã 2 ¶Á³ölen¸ö×Ö½Ú
** Êä¡¡Èë: INT32U len: Òª¶Á³öµÄ×Ö½ÚÊý£¨È¡Öµ·¶Î§Îª0x00000001 ~ 0xFFFFFFFF£©
INT8U *recbuff: ½ÓÊÕÊý¾ÝÖ¸Õë
INT16U timeout: ³¬Ê±Ê±¼ä, ±ØÐë´óÓÚµÈÓÚ0
** Êä¡¡³ö: 0: ¶Á³ö³É¹¦ > 0: ¶Á³öʧ°Ü(´íÎóÂë)
************************************************************/
extern INT8U ReadPort2(INT32U len,INT8U *recbuff,INT16U timeout);
/***********************************************************************
** º¯ÊýÃû³Æ: INT8U WritePort1(INT32U len,INT8U *sendbuff,INT16U timeout)
** ¹¦ÄÜÃèÊö: Óö˵ã 1 ·¢ËÍlen¸ö×Ö½Ú
** Êä¡¡Èë: INT32U len: ·¢Ë͵Ä×Ö½ÚÊý£¨È¡Öµ·¶Î§Îª0x00000001 ~ 0xFFFFFFFF£©
INT8U sendbuff: ·¢ËÍ»º³åÇøÖ¸Õë
INT16U timeout: ³¬Ê±µÈ´ýʱ¼ä, ±ØÐë´óÓÚµÈÓÚ0
** Êä¡¡³ö: 0: ·¢Ëͳɹ¦ > 0: ·¢ËÍʧ°Ü(´íÎóÂë)
************************************************************************/
extern INT8U WritePort1(INT32U len,INT8U *sendbuff,INT16U timeout);
/************************************************************
** º¯ÊýÃû³Æ: INT8U WritePort2(INT32U len,INT8U *sendbuff,INT16U timeout)
** ¹¦ÄÜÃèÊö: Óö˵ã 2 ·¢ËÍlen¸ö×Ö½Ú
** Êä¡¡Èë: INT32U len: ·¢Ë͵Ä×Ö½ÚÊý£¨È¡Öµ·¶Î§Îª0x00000001 ~ 0xFFFFFFFF£©
INT8U *sendbuff: ·¢ËÍÖ¸Õë
INT16U timeout: ³¬Ê±Ê±¼ä, ±ØÐë´óÓÚµÈÓÚ0
** Êä¡¡³ö: 0: ·¢Ëͳɹ¦ > 0: ·¢ËÍʧ°Ü(´íÎóÂë)
************************************************************/
extern INT8U WritePort2(INT32U len,INT8U *sendbuff,INT16U timeout);
/*******************************************************************
** º¯ÊýÃû³Æ: void TaskSetup(void *pdata)
** ¹¦ÄÜÃèÊö: Setup°ü´¦Àí
** Êä Èë: void *pdata ÈÎÎñ²ÎÊý
** Êä ³ö: ÎÞ
** ×¢ Òâ: ¸ÃÈÎÎñµÄÓÅÏȼ¶Ó¦¸ßÓÚÆäËüÈÎÎñ,²ÅÄÜÔÚÈκÎÇé¿öÏ´«ÊäSetup°ü
********************************************************************/
extern void TaskSetup(void *pdata);