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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? d12setup.c

?? USB通信程序開發(附源碼 精品)包括詳細論文說明
?? C
字號:
/*++

Module Name:

         D12Setup.c

Abstract:

         Header file related to D12 module

Environment:

        ICCAVR 6.29

Revision History:

        04/23/2004      chenchi   created

--*/
/******************************************************************/
#include "io8515v.h"
#include "d12.h"
#include "d12setup.h"

TRANSMIT_STRUCT XmtBuff;//定義傳輸結構體變量

/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:完成設備枚舉
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  (*StandardDeviceRequest[i])();
  標準設備請求函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void Setup_control(void)
{
	unsigned char i,j,*p;
	D12_COMMAND = 0x00;//選擇端點(指針指向0位置)
	cwait;
	D12_COMMAND = 0xf0;//讀標準控制碼
	cwait1;
	/****************************
	  緩沖區數據結構:
	  字節1:保留,可為任意值
	  字節2:數據字節的數目/長度
	  字節3:數據字節1
	  字節4:數據字節2
	*****************************/
	i = D12_DATA;//字節1
	cwait1;
	i = D12_DATA;//字節2
	cwait1;
	j = D12_DATA;//數據字節
	csram;
	p = XmtBuff.b;//P指針指向傳輸緩沖區
	*(p++) = j;
	for(i=0;i<7;i++)
	{
	   j = D12_DATA;//數據字節
	   csram;
	   asm("st Z+,%j");
	}
	D12_COMMAND = 0x01;// 選擇端點(指針指向0位置)
	cwait;
	D12_COMMAND = 0xf1;//應答SETUP包
	csram;
	i = XmtBuff.b[1];
	if (i <= 0x0B)//標準請求跳轉表
	{
		(*StandardDeviceRequest[i])();
	}
	else{
		D12_COMMAND = 0x01;//選擇端點(指針指向0位置)
		cwait;
		D12_COMMAND = 0xf0;// 寫緩沖區
		cwait;
		/****************************
	  	  緩沖區數據結構:
	  	  字節1:保留,可為任意值
	  	  字節2:數據字節的數目/長度
	  	  字節3:數據字節1
	  	  字節4:數據字節2
		*****************************/
		D12_DATA = 0x00;//字節1
		cwait;
		D12_DATA = 0x01;//字節2
		csram;
		D12_DATA = 0x00;//數據字節
		csram;
		D12_COMMAND = 0xfa;//設置 IN 緩沖區有效(滿標志)
		csram;
	}
	D12_COMMAND = 0x00;//選擇端點(指針指向0位置)
	cwait;
	D12_COMMAND = 0xf1;//應答SETUP包
	cwait;
	D12_COMMAND = 0xf2;//清端點緩沖區
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:停止控制端點.應答枚舉請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:無
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void void_function(void)
{
	D12_COMMAND = 0x40;//0端點停止(用于發送Stall包)
	cwait;
	D12_DATA = 0x01;
	cwait;
	D12_COMMAND = 0x41;//1//端點停止(用于發送Stall包)
	cwait;
	D12_DATA = 0x01;
	cwait;
	D12_COMMAND = 0xf1;//應答SETUP包
	csram;
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void get_status(void)
{
	XmtBuff.b[1] = 0x00;
	switch (XmtBuff.b[0])
	{
	case 0x80:
		break;
	case 0x81:
		XmtBuff.b[0] = 0x00;
		break;
	case 0x82:
		XmtBuff.b[0] = 0x00;
		break;
	}
	XmtBuff.p_p=0;
	XmtBuff.wrLength = 2;
	XmtBuff.p = XmtBuff.b;
	USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void clear_feature(void)
{
	unsigned char j;
	switch (XmtBuff.b[0])
	{
	case 0x00://清設備喚醒功能
		break;
	case 0x01://清接口狀態
		break;
	case 0x02://啟用端點
		//XmtBuff.b[5] D7為方向,D3~0為端點號
		j = XmtBuff.b[5];
		if(j<0x80)
		{
			j = 0x40+j*2;
			D12_COMMAND = j;// 啟用OUT端點
			D12_DATA = 0x00;
			csram;
		}
		else
		{
			j = (j & 0x0f);
			D12_COMMAND = 0x41+j*2;// 啟用IN端點
			D12_DATA = 0x00;
			csram;
		}
		break;
	}
	XmtBuff.wrLength = 0;
	USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void set_feature(void)
{
	unsigned char j;
	switch (XmtBuff.b[0])
	{
	case 0x00://設置設備喚醒功能
		break;
	case 0x01://設置接口狀態
		break;
	case 0x02://停止端點
		//XmtBuff.b[5] D7為方向,D3~0為端點號
		j = XmtBuff.b[5];
		if(j<0x80)
		{
			j = 0x40+j * 2;
			D12_COMMAND = j;// 停止OUT端點
			cwait;
			D12_DATA = 0x01;
			csram;
		}
		else
		{
			j = j & 0x0f;
			j = 0x41+j*2;
			D12_COMMAND = j;// 停止IN端點
			cwait;
			D12_DATA = 0x01;
			csram;
		}
		break;
	}
	XmtBuff.wrLength = 0;
	USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void set_address(void)
{
	unsigned char j;
	j = 0x80 | XmtBuff.b[2];
	D12_COMMAND = 0xd0;//設置新地址使能
	cwait;
	D12_DATA = j;
	csram;
	XmtBuff.wrLength = 0;
	USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void get_descriptor(void)
{
	unsigned int i;
	XmtBuff.p_p=1;
	switch (XmtBuff.b[3])
	{
		case 0x01: //USB_DEVICE
			XmtBuff.pp = device_descriptor;
			XmtBuff.wrLength = sizeof(device_descriptor);
			break;
		case 0x02:// USB_CONFIGURATION
			i = XmtBuff.b[7];
			i = ((i<<8) | XmtBuff.b[6]);
			XmtBuff.pp = Configuration_Descriptor;
			XmtBuff.wrLength = *(XmtBuff.pp+2);
			if(i<16)
				  XmtBuff.wrLength = XmtBuff.b[6];
			break;
		case 0x03: //USB_STRING
			switch(XmtBuff.b[2])
			{
			case 0x00 :
				//XmtBuff.wrLength = sizeof(USBStringLanguageDescription);
				//?XmtBuff.p = USBStringLanguageDescription;
				break;
			case 0x01 :
				//?XmtBuff.wrLength = sizeof(USBStringDescription1);
				//?XmtBuff.p = USBStringDescription1;
			   break;
			case 0x02 :
				//?XmtBuff.wrLength = sizeof(USBStringDescription2);
				//?XmtBuff.p = USBStringDescription2;
			   break;
			default   :
				void_function();
				return;
			}
			break;
		default :
			void_function();
			return;
	}
	USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void get_configuration(void)
{
	XmtBuff.b[0] = 1;//返回是否被配置(非 0 為配置)
	XmtBuff.wrLength = 16;
	XmtBuff.p_p=0;
	XmtBuff.p = XmtBuff.b;
	USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:D12_COMMAND,D12_DATA
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void set_configuration(void)
{
	unsigned char j;
	if (XmtBuff.b[0] == 0x00)
	{
		j = XmtBuff.b[2];
		D12_COMMAND = 0xd8;
		if(j == 0x00)
		{
			D12_DATA = 0x00;  // 停止普通/同步端點
		}else if(j == 0x01)
		{
			D12_DATA = 0x01;  // 使能普通/同步端點
			cwait;
			D12_COMMAND = 0x03;
			cwait;
			D12_COMMAND = 0xfa;// 設置 IN 緩沖區有效(滿標志)
			cwait;
			D12_COMMAND = 0x05;
			cwait;
			D12_COMMAND = 0xfa;// 設置 IN 緩沖區有效(滿標志)
		}
		csram;
   	}
	else
		void_function();
	XmtBuff.wrLength = 0;
		USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:傳輸結構體
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void get_interface(void)
{
	XmtBuff.b[0] = 0;
	XmtBuff.wrLength = 1;
	XmtBuff.p_p=0;
	XmtBuff.p = XmtBuff.b;
	USB_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:標準設備請求
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:傳輸結構體
**調用的函數說明:
  USB_submit();
  控制端點提交函數
  
**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void set_interface(void)
{
	XmtBuff.wrLength = 0;
	USB_submit();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区视频| 色欧美片视频在线观看| 欧美aaaaa成人免费观看视频| 亚洲欧美另类久久久精品| 国产日韩欧美麻豆| 国产欧美精品一区二区色综合 | 精品国产乱码91久久久久久网站| 精品视频在线免费看| 精品视频一区二区不卡| 在线观看日韩一区| 成人一区二区视频| 成人av在线播放网址| 色综合久久久久久久| 91麻豆精东视频| 欧美日韩一二区| 日韩视频在线永久播放| 国产欧美一区二区精品仙草咪| 中文久久乱码一区二区| 亚洲人成影院在线观看| 视频在线观看一区| 麻豆精品新av中文字幕| 国产一区二区三区四| 99久久综合狠狠综合久久| 日本乱码高清不卡字幕| 欧美一级免费大片| 国产日产欧美一区二区视频| 亚洲精品国产成人久久av盗摄| 亚洲国产精品久久人人爱蜜臀| 亚洲成a人v欧美综合天堂| 日韩影院免费视频| 国产福利一区二区三区在线视频| 99re这里只有精品视频首页| 欧美久久久久久蜜桃| 久久天堂av综合合色蜜桃网| 亚洲欧美一区二区三区极速播放| 丝袜亚洲精品中文字幕一区| 国产精品99久久久久久久vr| 色久优优欧美色久优优| 欧美一级在线视频| 曰韩精品一区二区| 狠狠狠色丁香婷婷综合久久五月| 色妹子一区二区| 26uuu亚洲| 亚洲成人av电影| 高清免费成人av| 欧美一级专区免费大片| 亚洲九九爱视频| 国产精品一品视频| 欧美一区二区在线不卡| 成人欧美一区二区三区黑人麻豆| 精品亚洲免费视频| 欧美日韩一二区| 亚洲免费观看高清| 国产大片一区二区| 精品国内片67194| 亚洲第一搞黄网站| 91麻豆国产精品久久| 中文字幕欧美国产| 国产资源精品在线观看| 欧美精品丝袜中出| 亚洲国产视频一区| av福利精品导航| 久久久99免费| 国产在线精品免费| 日韩免费电影一区| 麻豆精品新av中文字幕| 91麻豆精品国产自产在线| 亚洲一区在线视频| 91美女在线观看| 国产精品盗摄一区二区三区| 懂色av噜噜一区二区三区av| 久久精品一区四区| 国产福利一区二区三区视频在线| 欧美精品一区视频| 国产一区999| 久久一二三国产| 国产乱国产乱300精品| 久久毛片高清国产| 国产91精品免费| 综合久久综合久久| 在线视频一区二区免费| 亚洲国产日产av| 欧美一区二区性放荡片| 久久电影网电视剧免费观看| 精品处破学生在线二十三| 国产在线精品一区在线观看麻豆| 久久久久久久国产精品影院| 成人精品在线视频观看| 亚洲视频一区二区免费在线观看| 91在线视频在线| 香蕉乱码成人久久天堂爱免费| 717成人午夜免费福利电影| 精品在线观看免费| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91蜜桃网址入口| 亚洲成av人影院| 精品久久久久99| 99视频精品在线| 日韩和欧美一区二区| 国产精品国产三级国产普通话三级 | 国产风韵犹存在线视精品| 国产精品二三区| 欧日韩精品视频| 婷婷开心激情综合| 精品成a人在线观看| 不卡电影一区二区三区| 视频一区二区不卡| 国产精品色呦呦| 5月丁香婷婷综合| 国产精品99久久久久久宅男| 亚洲综合视频网| 26uuu亚洲| 欧美色精品天天在线观看视频| 久久99精品国产| 亚洲一区二区欧美激情| 久久综合久色欧美综合狠狠| 欧美性淫爽ww久久久久无| 久久精品国产免费| 亚洲最快最全在线视频| 久久久久国产精品麻豆ai换脸| 精品视频一区二区三区免费| 丁香一区二区三区| 日韩av网站在线观看| 亚洲欧洲综合另类| 国产欧美在线观看一区| 91精品国产综合久久福利| 一本大道av伊人久久综合| 国产一区二区三区四区在线观看| 亚洲成人免费视| 亚洲欧美另类久久久精品2019| 国产日韩视频一区二区三区| 欧美人伦禁忌dvd放荡欲情| 91亚洲精品久久久蜜桃网站| 国产成人免费网站| 卡一卡二国产精品 | 一区二区三区国产精华| 久久精品视频在线看| 欧美一区二区三区白人| 欧美色图12p| 色8久久人人97超碰香蕉987| 国产999精品久久久久久| 狠狠色2019综合网| 久久精品999| 久久99久久久欧美国产| 午夜精品福利一区二区三区av| 亚洲免费观看在线观看| 国产精品不卡一区| 国产农村妇女毛片精品久久麻豆| 亚洲精品一区二区三区福利| 欧美xxxxx裸体时装秀| 日韩亚洲国产中文字幕欧美| 7777精品伊人久久久大香线蕉完整版| 欧美自拍偷拍午夜视频| 91高清视频在线| 欧美日韩中文字幕一区二区| 色噜噜狠狠色综合欧洲selulu| 91亚洲永久精品| 日本高清免费不卡视频| 欧美色成人综合| 日韩欧美一区二区免费| 日韩一级精品视频在线观看| 欧美白人最猛性xxxxx69交| 精品成人私密视频| 国产精品久久久久一区二区三区 | 日韩欧美色电影| 日韩丝袜美女视频| 久久久影视传媒| 国产区在线观看成人精品| 欧美国产在线观看| 亚洲免费视频成人| 午夜在线成人av| 精品在线亚洲视频| 成人免费视频app| 91国内精品野花午夜精品| 在线观看av一区| 精品久久人人做人人爽| 久久久精品天堂| 亚洲激情图片小说视频| 久久99久久久欧美国产| 国产成都精品91一区二区三| 色综合天天综合色综合av| 欧美精品久久久久久久多人混战 | 欧美激情一区二区在线| 亚洲精品免费在线观看| 免费观看成人av| 成人免费精品视频| 欧美一区二区视频网站| 久久久综合视频| 午夜久久久久久| 国产成人h网站| 欧美日韩精品三区| 国产日本一区二区| 图片区小说区区亚洲影院| 国产成人欧美日韩在线电影| 欧美综合一区二区| 久久久久久黄色| 亚洲精品写真福利| 中文字幕中文乱码欧美一区二区| 一区二区高清视频在线观看| 国产综合色产在线精品|