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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? D12 的源代碼
?? C
字號:
/*
//*************************************************************************
// USB protocol function pointer arrays
//*************************************************************************
*/


//USB標(biāo)準(zhǔn)請求
code void (*StandardDeviceRequest[])(void) =
{
	get_status,
	clear_feature,
	reserved,
	set_feature,
	reserved,
	set_address,
	get_descriptor,
	reserved,
	get_configuration,
	set_configuration,
	get_interface,
	set_interface,
	reserved,
	reserved,
	reserved,
	reserved
};

//用戶廠商請求
code void (*VendorDeviceRequest[])(void) =
{
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	read_write_register,
	reserved,
	reserved,
	reserved
};

/*
//*************************************************************************
//  Public static data
//*************************************************************************
*/

extern EPPFLAGS bEPPflags;
extern unsigned long ClockTicks;
extern unsigned char idata GenEpBuf[];
extern IO_REQUEST idata ioRequest;

extern unsigned char ioSize, ioCount;
extern unsigned char idata EpBuf[];

CONTROL_XFER ControlData;
BOOL bNoRAM;

code char * _NAME_USB_REQUEST_DIRECTION[] =
{
"Host_to_device",
"Device_to_host"
};

code char * _NAME_USB_REQUEST_RECIPIENT[] =
{
"Device",
"Interface",
"Endpoint(0)",
"Other"
};

code char * _NAME_USB_REQUEST_TYPE[] =
{
"Standard",
"Class",
"Vendor",
"Reserved"
};

code char * _NAME_USB_STANDARD_REQUEST[] =
{
"GET_STATUS",
"CLEAR_FEATURE",
"RESERVED",
"SET_FEATURE",
"RESERVED",
"SET_ADDRESS",
"GET_DESCRIPTOR",
"SET_DESCRIPTOR",
"GET_CONFIGURATION",
"SET_CONFIGURATION",
"GET_INTERFACE",
"SET_INTERFACE",
"SYNC_FRAME"
};








//I/O口初始化程序
void init_port()
{
	P0 = 0xFF;
	P1 = 0xFF;
	P2 = 0xFF;
	P3 = 0xFF;
	MCU_D12CS = 0x0;
	D12SUSPD = 0;
}




void main(void)
{
	unsigned char key, i;

	init_port();//初始化I/O口




	MCU_D12CS = 0x1;
	
	MCU_D12CS = 0x0;

	D12_ReadChipID();

	if(MCU_SWM0 == 0 && MCU_SWM1 == 0) {
		MCU_D12RST = 0;
		MCU_D12RST = 1;
		D12_SetMODLE(0x0);
	}

	bEPPflags.value = 0;
	reconnect_USB();//重新連接USB

	/* Main program loop */

	while( TRUE ){

			if (bEPPflags.bits.bus_reset) {//設(shè)備復(fù)位處理
			DISABLE;
			bEPPflags.bits.bus_reset = 0;
			ENABLE;
			// Release D12's SUSPEND pin after bus reset
		
			D12SUSPD = 1;
		} // if bus reset

		if (bEPPflags.bits.suspend) {//掛起改變處理
			DISABLE;
			bEPPflags.bits.suspend= 0;
			ENABLE;

			if(D12SUSPD == 1) {//掛起處理
				D12SUSPD = 0;
				P0 = 0xFF;
				P1 = 0xFF;
				P2 = 0xFF;
				P3 = 0xFF;
				D12_SetDMA(0xC3);
				D12SUSPD = 1;
				PCON |= 0x02;
				while (1);
			}
		} // if suspend change

		if (bEPPflags.bits.setup_packet){//Setup包處理
			DISABLE;
			bEPPflags.bits.setup_packet = 0;
			ENABLE;
			control_handler();//調(diào)用請求處理子程序
			D12SUSPD = 1;
		} // if setup_packet

		
	} // Main Loop
}

//返回stall應(yīng)答
void stall_ep0(void)
{
	D12_SetEndpointStatus(0, 1);
	D12_SetEndpointStatus(1, 1);
}

//斷開USB總線
void disconnect_USB(void)
{
	// Initialize D12 configuration
	D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
}

//連接USB總線
void connect_USB(void)
{
	// reset event flags
	DISABLE;
	bEPPflags.value = 0;//清除所有狀態(tài)
	ENABLE;

	// V2.1 enable normal+sof interrupt
	D12_SetDMA(D12_ENDP4INTENABLE | D12_ENDP5INTENABLE);

	// Initialize D12 configuration
	D12_SetMode(D12_NOLAZYCLOCK|D12_SOFTCONNECT, D12_SETTOONE | D12_CLOCK_12M);
}

//重新連接到USB總線
void reconnect_USB(void)
{
	unsigned long clk_cnt;

	MCU_LED0 = 0;
	MCU_LED1 = 0;

	// Pull-down D12's SUSPEND pin
	// Release D12's SUSPEND pin after receiving bus reset from host
	D12SUSPD = 0;
	disconnect_USB();



	clk_cnt = ClockTicks;
	while(ClockTicks < clk_cnt + 20)
		;

	connect_USB();

	MCU_LED0 = 1;
	MCU_LED1 = 1;
}

//恢復(fù)到未配置狀態(tài)
void init_unconfig(void)
{
//	unsigned char i;

	D12_SetEndpointEnable(0);	/* Disable all endpoints but EPP0. */
}

//設(shè)置配置狀態(tài)
void init_config(void)
{
	D12_SetEndpointEnable(1);	/* Enable  generic/iso endpoints. */
}

//從端點(diǎn)號1發(fā)送數(shù)據(jù)
void single_transmit(unsigned char * buf, unsigned char len)
{
	if( len <= EP0_PACKET_SIZE) {
		D12_WriteEndpoint(1, len, buf);
	}
}

//發(fā)送端點(diǎn)號1建立代碼
void code_transmit(unsigned char code * pRomData, unsigned short len)
{
	ControlData.wCount = 0;
	if(ControlData.wLength > len)
		ControlData.wLength = len;

	ControlData.pData = pRomData;
	if( ControlData.wLength >= EP0_PACKET_SIZE) {
		D12_WriteEndpoint(1, EP0_PACKET_SIZE, ControlData.pData);//發(fā)送16字節(jié)數(shù)據(jù)
		ControlData.wCount += EP0_PACKET_SIZE;
		DISABLE;
		bEPPflags.bits.control_state = USB_TRANSMIT;
		ENABLE;
	}
	else {
		D12_WriteEndpoint(1, ControlData.wLength, pRomData);//發(fā)送16字節(jié)內(nèi)數(shù)據(jù)
		ControlData.wCount += ControlData.wLength;
		DISABLE;
		bEPPflags.bits.control_state = USB_IDLE;
		ENABLE;
	}
}


//請求處理子程序
void control_handler()
{
	unsigned char type, req;

	type = ControlData.DeviceRequest.bmRequestType & USB_REQUEST_TYPE_MASK;
	req = ControlData.DeviceRequest.bRequest & USB_REQUEST_MASK;

	help_devreq(type, req); //顯示設(shè)備請求

	if (type == USB_STANDARD_REQUEST)
		(*StandardDeviceRequest[req])();//調(diào)用標(biāo)準(zhǔn)請求
	else if (type == USB_VENDOR_REQUEST)
		(*VendorDeviceRequest[req])();//調(diào)用廠商請求
	else
		stall_ep0();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产bt| 一区二区三区在线免费观看| 麻豆免费精品视频| 久久99国产精品麻豆| 日韩精品中文字幕在线一区| 18涩涩午夜精品.www| 韩国av一区二区三区在线观看| 日韩欧美一区中文| 樱桃视频在线观看一区| 欧美在线你懂的| 日本不卡免费在线视频| 精品国产乱码久久久久久夜甘婷婷| 经典一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 中文字幕av一区 二区| 91视频在线观看免费| 亚洲国产精品久久人人爱蜜臀| 国产激情偷乱视频一区二区三区| 欧美激情一区二区三区不卡| 色欧美片视频在线观看在线视频| 亚洲第一激情av| 精品剧情v国产在线观看在线| 成人免费视频app| 亚洲尤物在线视频观看| 日韩一区二区免费视频| 成人影视亚洲图片在线| 亚洲国产乱码最新视频| 国产性做久久久久久| 久久电影网站中文字幕| 欧美精品日日鲁夜夜添| 一二三四社区欧美黄| 日韩一级二级三级精品视频| 五月天激情小说综合| 在线中文字幕一区二区| 亚洲三级免费电影| 日韩一区二区三区观看| 日本一不卡视频| 欧美放荡的少妇| 成人小视频免费在线观看| 久久精品人人做人人综合 | 国产精品免费视频观看| 欧美三级中文字幕在线观看| 中文字幕亚洲电影| 日韩三级av在线播放| 日精品一区二区三区| 欧美日韩成人综合在线一区二区| 国产成人免费在线视频| 欧美韩日一区二区三区| 成人毛片视频在线观看| 日韩av网站在线观看| 亚洲欧美一区二区三区极速播放 | 欧美一卡二卡三卡| 色综合天天综合色综合av| 亚洲色图视频免费播放| 色久优优欧美色久优优| 国产一区二区电影| 日本aⅴ亚洲精品中文乱码| **性色生活片久久毛片| 久久蜜桃av一区二区天堂 | 91黄色免费版| 高清不卡在线观看| 极品销魂美女一区二区三区| 五月婷婷激情综合| 亚洲高清免费在线| 日韩视频一区在线观看| 欧美日韩中文字幕精品| 麻豆精品一二三| 国产欧美日韩不卡| 欧美精品一区二区三区蜜桃| 日韩片之四级片| caoporn国产精品| 国产精品一二三区在线| 精品夜夜嗨av一区二区三区| 美女久久久精品| 麻豆精品一区二区| 中文字幕一区av| 国产精品久久久久一区二区三区共| 精品国产精品网麻豆系列| 不卡视频在线看| 成人午夜在线视频| 日韩国产精品91| 欧美激情一区二区三区不卡| 欧美日韩一区不卡| 欧美无乱码久久久免费午夜一区| 欧美图片一区二区三区| 国产成人亚洲综合a∨婷婷 | 亚洲成人第一页| 久久久91精品国产一区二区精品| 99久精品国产| kk眼镜猥琐国模调教系列一区二区 | 91福利在线导航| 97久久精品人人做人人爽| 一二三区精品视频| 亚洲在线视频免费观看| 国产精品福利一区二区| 欧美激情一区三区| 1024成人网色www| 亚洲一区av在线| 日韩高清电影一区| 免费观看成人av| 国产精品一区一区| 日韩伦理电影网| 欧美sm极限捆绑bd| 国产亚洲欧洲997久久综合| 国产精品免费久久| 亚洲成国产人片在线观看| 日韩视频中午一区| 欧美猛男gaygay网站| 97久久精品人人做人人爽50路| 国产九色精品成人porny| 亚洲bt欧美bt精品| 蜜臀av一级做a爰片久久| 欧美激情综合在线| 亚洲在线免费播放| 国产精品免费视频观看| 日韩欧美一区二区视频| 久久九九久精品国产免费直播| 在线不卡中文字幕| 国产午夜亚洲精品羞羞网站| 亚洲综合在线视频| 国内精品第一页| 麻豆视频观看网址久久| 蜜桃在线一区二区三区| 粉嫩av一区二区三区粉嫩| 麻豆精品在线看| 欧美精品久久99| 亚洲激情五月婷婷| 热久久一区二区| 成人蜜臀av电影| 日韩视频中午一区| 伊人开心综合网| 国产成人免费视频网站| 9191久久久久久久久久久| 国产精品成人免费精品自在线观看| 日韩激情视频网站| 午夜影院久久久| 成人av电影免费在线播放| 丝袜美腿亚洲色图| 丁香婷婷综合网| 久久福利视频一区二区| 久久亚洲一级片| 亚洲成人av一区二区三区| 精品无码三级在线观看视频| 7777精品伊人久久久大香线蕉| 国产亚洲美州欧州综合国| 亚洲精品免费播放| 在线免费精品视频| 亚洲成人综合在线| 欧美一区三区二区| 久久综合综合久久综合| 久久色在线观看| 午夜精品久久久久久久久久| 欧美日韩国产中文| 免费成人av在线| 欧美又粗又大又爽| 午夜激情一区二区三区| 欧美日韩国产一级片| 亚洲男同性恋视频| 国产精品99久久久| 欧美日韩国产小视频在线观看| 中文字幕欧美国产| 韩日欧美一区二区三区| 欧美唯美清纯偷拍| 久久精品国产澳门| 国产女主播一区| 精品婷婷伊人一区三区三| 亚洲国产电影在线观看| 一本大道av伊人久久综合| 国产人伦精品一区二区| av在线不卡网| 午夜成人免费电影| 久久综合九色综合97婷婷女人| 婷婷综合久久一区二区三区| 色婷婷综合久久久久中文一区二区 | 91精品国产一区二区三区蜜臀 | 精品国产乱码91久久久久久网站| 国产精品系列在线观看| 亚洲免费观看高清完整版在线观看 | 精品国产一区二区亚洲人成毛片| 亚洲精品精品亚洲| 9191精品国产综合久久久久久| 亚洲第一会所有码转帖| 91国在线观看| 国产高清久久久久| 久久久午夜精品理论片中文字幕| 91在线观看免费视频| 亚洲欧洲美洲综合色网| 成人国产精品免费| 国产人伦精品一区二区| 欧美美女激情18p| 亚洲电影一级黄| 国产日韩欧美精品一区| 欧美亚洲图片小说| 国产成人精品免费网站| 石原莉奈在线亚洲二区| 最近中文字幕一区二区三区| 成人av电影观看| 亚洲精品久久久久久国产精华液| 欧美在线观看禁18| 五月激情综合网|