?? d13driver.h
字號(hào):
/****************************************Copyright (c)**************************************************
** Guangzhou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: D13Driver.h
** Last modified Date: 2004-12-10
** Last Version: V1.0
** Descriptions: ISP1181B(D13) 設(shè)備端驅(qū)動(dòng)程序 應(yīng)用層頭文件
** Soft Packet of USB Driver: the Driver of Device of ISP1181B(D13)
the Head Files of Application Layer
**------------------------------------------------------------------------------------------------------
** Created by: Ming Yuan Zheng
** Created date: 2004-12-10
** Version: V1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
/**************** 定義 USB 收發(fā)錯(cuò)誤碼 ***************************/
#define USB_NO_ERR 0x00 //正確
#define USB_ERR_NO_CONFIG 0x01 //USB總線未配置完成錯(cuò)誤
#define USB_ERR_BUFF_INVALID 0x02 //接收或發(fā)送緩沖區(qū)錯(cuò)誤
#define USB_ERR_WR_TIMEOUT 0x03 //接收或發(fā)送超時(shí)錯(cuò)誤
/*************** 定義 USB 接收或發(fā)送控制塊 **********************/
typedef struct tagUsb_Struct
{
INT8U *pBuff[OS_LOWEST_PRIO]; //接收或發(fā)送緩沖區(qū)指針數(shù)組
INT32U Max[OS_LOWEST_PRIO]; //接收或發(fā)送字節(jié)數(shù), 也作為接收或發(fā)送完成標(biāo)志
INT32U Cnt; //接收或發(fā)送字節(jié)計(jì)數(shù)器
INT8U Grp; //等待組
INT8U Tbl[OS_RDY_TBL_SIZE]; //等待列表
INT8U Sem; //端點(diǎn)資源信號(hào)量
INT8U Prio; //當(dāng)前占用該端點(diǎn)的任務(wù)優(yōu)先級(jí)
}CTRL_USB;
/*************** Setup包處理任務(wù)堆棧 ****************************/
extern OS_STK TaskSetupStk[128];
/* ISP1181B 各端口對(duì)應(yīng)的 USB 接收或發(fā)送控制塊 */
/* USB receive or transmit control block of ISP1181B each endpoint */
extern CTRL_USB UsbSend_EP01; //端點(diǎn) 1 發(fā)送控制塊
extern CTRL_USB UsbRec_EP02; //端點(diǎn) 2 接收控制塊
extern CTRL_USB UsbSend_EP03; //端點(diǎn) 3 發(fā)送控制塊
extern CTRL_USB UsbRec_EP04; //端點(diǎn) 4 接收控制塊
extern CTRL_USB UsbSend_EP05; //端點(diǎn) 5 發(fā)送控制塊
extern CTRL_USB UsbRec_EP06; //端點(diǎn) 6 接收控制塊
/**************** D12Driver.c內(nèi)部使用函數(shù) ************************/
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,INT8U buffnums,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_Param(CTRL_USB *pUsb,INT32U len,INT8U *pbuff);
INT8U USB_RW_Result(INT8U endp,INT8U buffnums,CTRL_USB *pUsb,
INT8U bread,INT16U timeout);
/*
***************************************************************************
D13Driver.c 提供的API函數(shù)
***************************************************************************
*/
/**********************************************************************************************************************
** 函數(shù)名稱: Init_D13() Name: Init_D13()
** 功能描述: 設(shè)置 D13(ISP1181B) 與MCU的連接接口, Function: Configure the interface connected to MCU,reset D13,
復(fù)位D13,連接上USB總線 connected to USB bus
** 輸 入: 無(wú) Input: NULL
** 輸 出: 0: 初始化成功 1: 初始化失敗 Output: 0: Initialize sucessfully 1: Initialize fail
************************************************************************************************************************/
extern INT8U Init_D13(void);
/*******************************************************************************************************************************
** 函數(shù)名稱: INT8U WritePort1() Name: INT8U WritePort1()
** 功能描述: 用端口 1 發(fā)送len個(gè)字節(jié) Function: Send len Bytes via Port1
** 輸 入: INT32U len: 發(fā)送的字節(jié)數(shù) Input: INT32U len: numbers will be send
(取值范圍為0x00000001 ~ 0xFFFFFFFF) (range: 0x00000001 ~ 0xFFFFFFFF)
INT8U sendbuff: 發(fā)送緩沖區(qū)指針 INT8U sendbuff: send buffer
INT16U timeout: 超時(shí)等待時(shí)間, 必須大于等于0 INT16U timeout: timeout of transmitting
** 輸 出: 0: 發(fā)送成功 > 0: 發(fā)送失敗(錯(cuò)誤碼) Output: 0: sucessfully >0 fail (error code)
*******************************************************************************************************************************/
extern INT8U WritePort1(INT32U len,INT8U *sendbuff,INT16U timeout);
/*******************************************************************************************************************************
** 函數(shù)名稱: INT8U WritePort2() Name: INT8U WritePort2()
** 功能描述: 用端口 2 發(fā)送len個(gè)字節(jié) Function: Send len Bytes via Port2
** 輸 入: INT32U len: 發(fā)送的字節(jié)數(shù) Input: INT32U len: numbers will be send
(取值范圍為0x00000001 ~ 0xFFFFFFFF) (range: 0x00000001 ~ 0xFFFFFFFF)
INT8U sendbuff: 發(fā)送緩沖區(qū)指針 INT8U sendbuff: send buffer
INT16U timeout: 超時(shí)等待時(shí)間, 必須大于等于0 INT16U timeout: timeout of transmitting
** 輸 出: 0: 發(fā)送成功 > 0: 發(fā)送失敗(錯(cuò)誤碼) Output: 0: sucessfully >0 fail (error code)
*******************************************************************************************************************************/
extern INT8U WritePort2(INT32U len,INT8U *sendbuff,INT16U timeout);
/*******************************************************************************************************************************
** 函數(shù)名稱: INT8U WritePort3() Name: INT8U WritePort3()
** 功能描述: 用端口 3 發(fā)送len個(gè)字節(jié) Function: Send len Bytes via Port3
** 輸 入: INT32U len: 發(fā)送的字節(jié)數(shù) Input: INT32U len: numbers will be send
(取值范圍為0x00000001 ~ 0xFFFFFFFF) (range: 0x00000001 ~ 0xFFFFFFFF)
INT8U sendbuff: 發(fā)送緩沖區(qū)指針 INT8U sendbuff: send buffer
INT16U timeout: 超時(shí)等待時(shí)間, 必須大于等于0 INT16U timeout: timeout of transmitting
** 輸 出: 0: 發(fā)送成功 > 0: 發(fā)送失敗(錯(cuò)誤碼) Output: 0: sucessfully >0 fail (error code)
*******************************************************************************************************************************/
extern INT8U WritePort3(INT32U len,INT8U *sendbuff,INT16U timeout);
/*******************************************************************************************************************************
** 函數(shù)名稱: INT8U ReadPort1() Name: INT8U ReadPort1()
** 功能描述: 從端口 1 接收l(shuí)en個(gè)字節(jié) Function: receive len Bytes from Port1
** 輸 入: INT32U len: 要接收的字節(jié)數(shù) Input: INT32U len: numbers will be receive
(取值范圍為0x00000001 ~ 0xFFFFFFFF) (range: 0x00000001 ~ 0xFFFFFFFF)
INT8U recbuff: 接收緩沖區(qū)指針 INT8U sendbuff: receive buffer
INT16U timeout: 超時(shí)等待時(shí)間, 必須大于等于0 INT16U timeout: timeout of receiving
** 輸 出: 0: 接收成功 > 0: 接收失敗(錯(cuò)誤碼) Output: 0: sucessfully >0 fail (error code)
*******************************************************************************************************************************/
extern INT8U ReadPort1(INT32U len,INT8U *recbuff,INT16U timeout);
/*******************************************************************************************************************************
** 函數(shù)名稱: INT8U ReadPort2() Name: INT8U ReadPort2()
** 功能描述: 從端口 2 接收l(shuí)en個(gè)字節(jié) Function: receive len Bytes from Port2
** 輸 入: INT32U len: 要接收的字節(jié)數(shù) Input: INT32U len: numbers will be receive
(取值范圍為0x00000001 ~ 0xFFFFFFFF) (range: 0x00000001 ~ 0xFFFFFFFF)
INT8U recbuff: 接收緩沖區(qū)指針 INT8U sendbuff: receive buffer
INT16U timeout: 超時(shí)等待時(shí)間, 必須大于等于0 INT16U timeout: timeout of receiving
** 輸 出: 0: 接收成功 > 0: 接收失敗(錯(cuò)誤碼) Output: 0: sucessfully >0 fail (error code)
*******************************************************************************************************************************/
extern INT8U ReadPort2(INT32U len,INT8U *recbuff,INT16U timeout);
/*******************************************************************************************************************************
** 函數(shù)名稱: INT8U ReadPort3() Name: INT8U ReadPort3()
** 功能描述: 從端口 3 接收l(shuí)en個(gè)字節(jié) Function: receive len Bytes from Port3
** 輸 入: INT32U len: 要接收的字節(jié)數(shù) Input: INT32U len: numbers will be receive
(取值范圍為0x00000001 ~ 0xFFFFFFFF) (range: 0x00000001 ~ 0xFFFFFFFF)
INT8U recbuff: 接收緩沖區(qū)指針 INT8U sendbuff: receive buffer
INT16U timeout: 超時(shí)等待時(shí)間, 必須大于等于0 INT16U timeout: timeout of receiving
** 輸 出: 0: 接收成功 > 0: 接收失敗(錯(cuò)誤碼) Output: 0: sucessfully >0 fail (error code)
*******************************************************************************************************************************/
extern INT8U ReadPort3(INT32U len,INT8U *recbuff,INT16U timeout);
/*******************************************************************
** 函數(shù)名稱: void TaskSetup(void *pdata)
** 功能描述: Setup包處理
** 輸 入: void *pdata 任務(wù)參數(shù)
** 輸 出: 無(wú)
** 注 意: 該任務(wù)的優(yōu)先級(jí)應(yīng)高于其它任務(wù),才能在任何情況下傳輸Setup包
********************************************************************/
extern void TaskSetup(void *pdata);
/*****************************************************************************************************************
** 函數(shù)名稱: get_firmware_version() Name: get_firmware_version()
** 功能描述: 得到本固件軟件包版本號(hào) Function: get software version of the firmware
** 輸 入: 無(wú) Input: NULL
** 輸 出: 本固件軟件包版本號(hào) Output: the software version of the firmware
******************************************************************************************************************/
extern INT16U get_ISP1181B_firmware_version(void);
extern void bus_reset(void);
extern void usb_suspend(void);
extern void dma_eot(void);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -