亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? d13driver.c

?? zlg開(kāi)發(fā)套件ucos系統(tǒng)下讀寫(xiě)e2prom源代碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			D13Driver.c
** 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)  
												   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: 
**
********************************************************************************************************/

#include "config.h"

#include "D13Config.h"
#include "D13CI.h"
#include "D13HAL.h"
#include "Chap_9.h"
#include "D13Driver.h"

extern EPPFLAGS bEPPflags;

/* Setup包處理任務(wù)堆棧  */
/* Stack of the task that deal with control transfer */
OS_STK  TaskSetupStk[128];

/* Setup包處理任務(wù)事件指針 */
/* the pointer of Event that deal SETUP packet */
OS_EVENT *pSetup_Event;

/* ISP1181B 各端口對(duì)應(yīng)的 USB 接收或發(fā)送控制塊 */
/* USB receive or transmit control block of ISP1181B each endpoint */
CTRL_USB UsbSend_EP01;				//端點(diǎn) 1 發(fā)送控制塊
CTRL_USB UsbRec_EP02;				//端點(diǎn) 2 接收控制塊

CTRL_USB UsbSend_EP03;				//端點(diǎn) 3 發(fā)送控制塊
CTRL_USB UsbRec_EP04;				//端點(diǎn) 4 接收控制塊

CTRL_USB UsbSend_EP05;				//端點(diǎn) 5 發(fā)送控制塊
CTRL_USB UsbRec_EP06;				//端點(diǎn) 6 接收控制塊


/*******************************************************************************************************************************
** 函數(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)
*******************************************************************************************************************************/
INT8U WritePort1(INT32U len,INT8U *sendbuff,INT16U timeout)
{
	return (USB_WritePort(EPINDEX4EP01,16,1,&UsbSend_EP01,sendbuff,len,timeout));
}	//往端口1發(fā)送數(shù)據(jù)

/*******************************************************************************************************************************
** 函數(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)
*******************************************************************************************************************************/
INT8U WritePort2(INT32U len,INT8U *sendbuff,INT16U timeout)
{
	return (USB_WritePort(EPINDEX4EP03,64,2,&UsbSend_EP03,sendbuff,len,timeout));
}	//往端點(diǎn)3發(fā)送數(shù)據(jù)

/*******************************************************************************************************************************
** 函數(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)
*******************************************************************************************************************************/
INT8U WritePort3(INT32U len,INT8U *sendbuff,INT16U timeout)
{
	return (USB_WritePort(EPINDEX4EP05,64,2,&UsbSend_EP05,sendbuff,len,timeout));
}	//往端點(diǎn)5發(fā)送數(shù)據(jù)


/*******************************************************************************************************************************
** 函數(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)
*******************************************************************************************************************************/
INT8U ReadPort1(INT32U len,INT8U *recbuff,INT16U timeout)
{
	return (USB_ReadPort(EPINDEX4EP02,1,&UsbRec_EP02,len,recbuff,timeout));
}	//從端點(diǎn)2接收數(shù)據(jù)

/*******************************************************************************************************************************
** 函數(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)
*******************************************************************************************************************************/
INT8U ReadPort2(INT32U len,INT8U *recbuff,INT16U timeout)
{
	return (USB_ReadPort(EPINDEX4EP04,2,&UsbRec_EP04,len,recbuff,timeout));
}	//從端點(diǎn)4接收數(shù)據(jù)

/*******************************************************************************************************************************
** 函數(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)
*******************************************************************************************************************************/
INT8U ReadPort3(INT32U len,INT8U *recbuff,INT16U timeout)
{
	return (USB_ReadPort(EPINDEX4EP06,2,&UsbRec_EP06,len,recbuff,timeout));
}	//從端點(diǎn)5接收數(shù)據(jù)


/**********************************************************************************************************************
** 函數(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
** 注	 意: 請(qǐng)?jiān)谡{(diào)用該函數(shù)以后再打開(kāi)D13中斷		Note:	   Enable the interrupt of D13 after the function be called
***********************************************************************************************************************/
INT8U Init_D13(void)
{
	INT32U i;
	
	OS_ENTER_CRITICAL();
	
	Init_D13Port();								  		 //初始化MCU與ISP1181B 連接的接口 	 initialize MCU and ISP1181B's Interface 
	Rst_D13();									  		 //復(fù)位D13	 					 	 reset D13 chip
	reconnect_USB();        					   		 //重新連接USB總線				  	 reconnect USB bus
	
	i = D13_ReadChipID(); 								 //讀芯片ID號(hào)  read ChipID
	if (i!= ISP1181B_CHIPID && i != ISP1181A_CHIPID &&
	    i!= ISP1161A_CHIPID)
	{	
		OS_EXIT_CRITICAL(); 
		return 1;								  		 //讀芯片ID號(hào)不正確,返回失敗		 ChipID is error,return 1
	}
	
	bEPPflags.value = 0;						  		 //USB事件標(biāo)志置0					 USB Event Flag clear to zero
	
  	UsbRec_EP02.Sem = 0;						   		 //初始化 USB 接收或發(fā)送控制塊
 	UsbRec_EP04.Sem = 0;						 		 //Initialize CTRL_USB structure 
 	UsbRec_EP06.Sem = 0;
 	UsbSend_EP01.Sem = 0;
 	UsbSend_EP03.Sem = 0;
 	UsbSend_EP05.Sem = 0;
 	UsbRec_EP02.Grp  = 0;
	UsbRec_EP04.Grp  = 0;
	UsbRec_EP06.Grp  = 0;
	UsbSend_EP01.Grp = 0;
	UsbSend_EP03.Grp = 0;
	UsbSend_EP05.Grp = 0;	
	
    for (i = 0; i < OS_RDY_TBL_SIZE; i++){
    	UsbRec_EP02.Tbl[i]  = 0;				 		  //清空各端口接收與發(fā)送等待任務(wù)列表
    	UsbRec_EP04.Tbl[i]  = 0;				  		  //clear the waiting task table of each port
    	UsbRec_EP06.Tbl[i]  = 0;
		UsbSend_EP01.Tbl[i] = 0;
		UsbSend_EP03.Tbl[i] = 0;
		UsbSend_EP05.Tbl[i] = 0;
    }
	
 	pSetup_Event = OSSemCreate(0);				  		  //創(chuàng)建Setup包處理任務(wù)信號(hào)量
 												  		  //create the semaphore of the task of Handling SETUP packet 		  
 	if (pSetup_Event == NULL)					
 	{
	 	OS_EXIT_CRITICAL(); 
 	 	return 1;								   		  //return 1 when create the semaphore fail
	}	
	
	OS_EXIT_CRITICAL();
 	return 0;							  		   		  //初始化成功	initialize sucessfully
}

/******************************************************************************************************************
** 函數(shù)名稱: Usb_Exception()					    Name:		Usb_Exception()
** 功能描述: ISP1181B(D13) 中斷服務(wù)程序			    Function:	the interrupt service routine of ISP1181B(D13)
*******************************************************************************************************************/
void Usb_Exception(void)
{
	INT32U i_st;
			
	OS_ENTER_CRITICAL();						    //關(guān)中斷							disable all interrupt
		
	D13_LockDevice(0xAA37);
	
	i_st = D13_ReadInterruptRegister();				//讀取D13中斷寄存器值				read the interrupt register of ISP1181B
	if(i_st != 0){
		if(i_st & D13REG_INTSRC_BUSRESET){
			bus_reset();							//總線復(fù)位處理						deal with the bus reset
			bEPPflags.bits.bus_reset = 1;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品免费在线| 555夜色666亚洲国产免| 国产精品538一区二区在线| 美女视频一区在线观看| 午夜电影久久久| 亚洲电影激情视频网站| 亚洲国产毛片aaaaa无费看 | 亚洲gay无套男同| 夜夜操天天操亚洲| 一区二区三区在线观看动漫| 一区二区三区在线免费视频| 亚洲一区在线观看视频| 亚洲动漫第一页| 青青草国产精品亚洲专区无| 裸体一区二区三区| 国精产品一区一区三区mba桃花 | 午夜欧美大尺度福利影院在线看| 亚洲精品国产品国语在线app| 亚洲综合一二三区| 亚洲bt欧美bt精品| 日本在线不卡一区| 久久www免费人成看片高清| 精品一区二区精品| 成人美女在线视频| 在线视频中文字幕一区二区| 欧美男男青年gay1069videost | 综合精品久久久| 亚洲综合一二三区| 美国十次了思思久久精品导航| 精品中文字幕一区二区| 高清av一区二区| 色婷婷国产精品| 日韩视频免费直播| 国产色爱av资源综合区| 亚洲欧美国产三级| 日韩高清在线观看| 国产精品99久| 91福利视频久久久久| 制服.丝袜.亚洲.中文.综合| 欧美精品一区二区三| 中文字幕一区二区三区蜜月| 亚洲综合另类小说| 久久国产生活片100| 91影院在线观看| 91精品国产综合久久婷婷香蕉 | 久久综合色婷婷| 亚洲视频在线观看三级| 爽爽淫人综合网网站| 国产酒店精品激情| 欧美在线观看一区二区| 九色综合狠狠综合久久| 不卡一区在线观看| 91精品国产一区二区三区香蕉| 中文字幕电影一区| 日韩高清在线不卡| 91小视频在线免费看| 日韩欧美不卡在线观看视频| 亚洲视频图片小说| 久久成人综合网| 欧美天堂一区二区三区| 久久久久久久久蜜桃| 亚洲动漫第一页| av欧美精品.com| xvideos.蜜桃一区二区| 一区二区三区四区亚洲| 国产黄人亚洲片| 欧美精品777| 亚洲三级免费观看| 国产精品亚洲人在线观看| 911精品国产一区二区在线| 国产精品私人自拍| 蜜桃久久久久久| 欧洲中文字幕精品| 国产欧美精品一区aⅴ影院| 日韩中文字幕不卡| 日本黄色一区二区| 国产日韩欧美综合在线| 日本欧美一区二区| 欧美日韩和欧美的一区二区| 国产精品国产a| 国产成人鲁色资源国产91色综| 555www色欧美视频| 亚洲一区二区三区四区在线| 99精品视频一区| 欧美激情综合五月色丁香| 久久精品国产第一区二区三区| 欧美日免费三级在线| 综合分类小说区另类春色亚洲小说欧美| 国内精品嫩模私拍在线| 欧美一区二区三区的| 一个色综合av| 91偷拍与自偷拍精品| 日本一区二区三级电影在线观看 | 裸体一区二区三区| 欧美日韩国产区一| 亚洲午夜三级在线| 在线观看网站黄不卡| 亚洲免费观看高清完整| 99精品热视频| 亚洲人成网站在线| 成人黄动漫网站免费app| 国产日产精品1区| 国产精品 日产精品 欧美精品| 日韩精品一区二区三区三区免费| 日本免费在线视频不卡一不卡二 | 亚洲欧美另类在线| 99精品黄色片免费大全| 中文字幕在线观看一区二区| 成人动漫视频在线| 亚洲人成精品久久久久| 色综合久久综合网欧美综合网| 亚洲人成网站在线| 欧美性猛交xxxxxx富婆| 亚洲国产精品欧美一二99 | 夜夜夜精品看看| 欧美探花视频资源| 亚洲国产aⅴ天堂久久| 欧美日韩国产a| 欧美性感一类影片在线播放| 一级日本不卡的影视| 欧美日韩夫妻久久| 久久精工是国产品牌吗| www激情久久| av中文字幕亚洲| 亚洲一区二区三区小说| 日韩一区二区三区免费观看| 国产在线观看一区二区| 国产精品另类一区| 欧美中文字幕一区二区三区亚洲 | 成人免费视频播放| 亚洲美女屁股眼交3| 欧美日韩国产影片| 男女激情视频一区| 国产日韩欧美精品一区| 91捆绑美女网站| 天天做天天摸天天爽国产一区| 欧美电影免费观看高清完整版| 欧美日韩一区精品| 日本亚洲欧美天堂免费| 久久久久久一二三区| 91尤物视频在线观看| 五月婷婷另类国产| 久久精子c满五个校花| 97久久人人超碰| 奇米精品一区二区三区四区| 国产亚洲污的网站| 色婷婷国产精品| 久久爱www久久做| 亚洲精品视频自拍| 日韩精品自拍偷拍| 成人aa视频在线观看| 亚洲成人在线网站| 国产午夜亚洲精品不卡| 欧洲一区在线观看| 国产精华液一区二区三区| 亚洲一区二区在线免费观看视频| 欧美变态tickle挠乳网站| 99精品一区二区三区| 美女网站色91| 亚洲精品第一国产综合野| 日韩一级黄色大片| 92精品国产成人观看免费| 精东粉嫩av免费一区二区三区| 中文字幕综合网| 亚洲精品一区在线观看| 欧美午夜电影网| 高清国产一区二区| 久久精品av麻豆的观看方式| 又紧又大又爽精品一区二区| 欧美第一区第二区| 欧美写真视频网站| 成人免费观看av| 国内精品国产三级国产a久久| 亚洲成a人片综合在线| 国产精品久久777777| www国产精品av| 69久久夜色精品国产69蝌蚪网| 91丨porny丨首页| 国产成人在线视频免费播放| 美女视频黄 久久| 亚洲成人精品在线观看| 亚洲精品免费播放| 欧美韩日一区二区三区| 久久综合久久综合亚洲| 67194成人在线观看| 在线一区二区视频| 99re66热这里只有精品3直播| 成人中文字幕在线| 国产精品亚洲第一| 国产毛片精品视频| 久久国产日韩欧美精品| 免费在线看一区| 视频一区二区三区入口| 亚洲高清不卡在线| 亚洲制服丝袜一区| 亚洲人被黑人高潮完整版| 一区在线观看免费| 1000部国产精品成人观看| 欧美国产乱子伦| 亚洲国产高清不卡|