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

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

?? gphidapp.c

?? 基于sy2100 ez-usb開發板的程序
?? C
字號:
/*-----------------------------------------------------------------------------
	File:		ghHIDapp.c	27-Aug-01	LTH 
	Contents:	General Purpose HID device with following characteristics:
				1. VID=0547h, PID=7450h, DID=0001h
				2. Input and Output reports are 2 bytes
				3. HID input reports return:
					a. The number of output reports received
					b. EZ-USB Dev board switches
				6. The background program constantly displays the last output
					report hex digits received in the 7-seg readout.
			  	7. Five strings; manuf(1),prod(2),s/n(3),cfg(4), and iface(5.

	Copyright (c) 2001 Cypress Semiconductor, Inc. All rights reserved
------------------------------------------------------------------------------*/
#pragma intvector (0x17FD)
#pragma interval(4)			// put USB (INT2) interrupt vector table at 1800,1804...
#include "ezusb.h"
#include "ezregs.h"

extern BOOL	GotSUD;			// Received setup data flag
extern BOOL	Sleep;
extern BOOL	Rwuen;
extern BOOL	Selfpwr;
//-----------------------------------------------------------------------------
// Constants
//-----------------------------------------------------------------------------
#define ButtonAddr		0x41
#define	seg7Addr		0x42
#define bmF1			0x01
#define	bmF2			0x02
#define bmF3			0x04
#define bmF4			0x08
#define	bmDIP1			0x10
#define	bmDIP2			0x20
//-----------------------------------------------------------------------------
// Variables
//-----------------------------------------------------------------------------
BYTE	Configuration;			// Current configuration
BYTE	AlternateSetting;		// Alternate settings
BYTE	buttons,oldbuttons;
BYTE	leds=0xFF;
BYTE	dp,old_dp;				// decimal point
char data Digit[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0x88,0x83,0xc6,0xa1,0x86,0x8e};
int tick,count,timeconst;
#define TCMS 500				// Time constant in milliseconds (incremented in SOF ISR)
//-----------------------------------------------------------------------------
// Function prototypes
//-----------------------------------------------------------------------------
BYTE read_buttons(void);	// Read the Dev Board buttons thru i2c port
void display (BYTE);		// Update the 7-seg readout thru i2c port
//-----------------------------------------------------------------------------
// Task Dispatcher (TD) hooks
//	The following functions are called by the task dispatcher.
//-----------------------------------------------------------------------------
void TD_Init(void) 			// Called once at startup
{
	IN07VAL = bmEP1;		// Enable our EP's: EP1-IN & EP1-OUT
	OUT07VAL = bmEP1;
	USBIEN = bmSOF;			// Enable SOF interrupt
	display(0x7F);			// 7-seg readout--decimal point only
	timeconst = TCMS;		// initial value
	old_dp = 0;				// used to detect change in decimal point value
	IN1BUF[0] = 0;
	IN1BUF[1] = 0;
	IN1BC = 2;				// Arm EP1-in in case an IN arrives before an OUT (W2K)	
}

void TD_Poll(void) 		// Called repeatedly while not handling SETUP packets
{
	EUSB=0;				// turn off USB (SOF) interrupt 
	if (tick > timeconst)	// see if timer has hit max
		{
		tick=0;
		count++;
		count &= 0x0F;
		display(Digit[count]);	// look up segments
		IN1BUF[0] = count;		// update the display value
		}
	EUSB=1;				// USB interrupts back on
//
		buttons = read_buttons();
		if (buttons == read_buttons())	//Debounce
		{
			if ((oldbuttons - buttons) != 0)	//Change in button state
			oldbuttons = buttons;
		}
	
	if(!(OUT1CS & bmEPBUSY))	// Is there something available?
	{
		timeconst = OUT1BUF[0]*20;		// Output Report Byte 0 is time const (tenths of sec)
		dp = OUT1BUF[1];		// decimal point
		OUT1BC = 0;				// Re-arm EP1-OUT
		IN1BUF[0] = count;
		IN1BUF[1] = buttons;
		IN1BC = 2;				// arm the EP2-IN transfer
		if (dp != old_dp)		// update the display NOW if dp data changed
			{
				old_dp = dp;	// update stored value
				display(Digit[count]);	// look up segments
			}
	}
}

BYTE read_buttons (void)	// Read the Dev board buttons
{							// Make available in 4 lsb's, active TRUE
	BYTE d;
	while (I2CS & 0x40);	//Wait for stop complete
	I2CS = 0x80;			//Set start condition
	I2DAT = ButtonAddr;		//Write button address
	while (!(I2CS & 0x01));	//Wait for done
	I2CS = 0x20;			//Set last read
	d = I2DAT;				//trigger last read
	while (!(I2CS & 0x01));	//Wait for done
	I2CS = 0x40;			//Set stop bit
	d = ~I2DAT;				// Active TRUE
 	d &= 0x0F;				// 4 LSB's only
	return(d);				//Return the 4 PB values in active-true form
}

void display (BYTE d)
{
	d &= 0x7F;				// Clear the MSB
	d |= (dp & 0x80);		// OR in the decimal point (MSB)
	while (I2CS & 0x40);	//Wait for stop to be done
	I2CS = 0x80;			//Set start condition
	I2DAT = seg7Addr;		//Write led address
	while (!(I2CS & 0x01));	//Wait for done
	I2DAT = d;				//Write data
	while (!(I2CS & 0x01));	//Wait for done
	I2CS = 0x40;			//Set stop bit
}

BOOL TD_Suspend(void) 			// Called before the device goes into suspend mode
{
	return(TRUE);
}

BOOL TD_Resume(void) 			// Called after the device resumes
{
	return(TRUE);
}
//-----------------------------------------------------------------------------
// Device Request hooks
//	The following functions are called by the endpoint 0 device request parser.
//-----------------------------------------------------------------------------
BOOL DR_SetConfiguration(void)	// Called when a Set Configuration command is received
{
	Configuration = SETUPDAT[2];
	return(TRUE);				// Handled by user code
}

BOOL DR_GetConfiguration(void)	// Called when a Get Configuration command is received
{
	IN0BUF[0] = Configuration;
	EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
	return(TRUE);				// Handled by user code
}

BOOL DR_SetInterface(void) 		// Called when a Set Interface command is received
{
	AlternateSetting = SETUPDAT[2];
	return(TRUE);				// Handled by user code
}

BOOL DR_GetInterface(void) 		// Called when a Set Interface command is received
{
	IN0BUF[0] = AlternateSetting;
	EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
	return(TRUE);				// Handled by user code
}

BOOL DR_GetStatus(void)
{
	return(TRUE);
}

BOOL DR_ClearFeature(void)
{
	return(TRUE);
}

BOOL DR_SetFeature(void)
{
	return(TRUE);
}

//-----------------------------------------------------------------------------
// USB Interrupt Handlers
//	The following functions are called by the USB interrupt jump table.
//-----------------------------------------------------------------------------
void ISR_Sudav(void) interrupt 0	// Setup Data Available
{
	GotSUD = TRUE;					// Set flag
	EZUSB_IRQ_CLEAR();
	USBIRQ = bmSUDAV;				// Clear SUDAV IRQ
}

void ISR_Sutok(void) interrupt 2	// Setup token (not used)
{
}

void ISR_Sof(void) interrupt 1		// SOF
{
	EZUSB_IRQ_CLEAR();
	USBIRQ = bmSOF;					// Clear SOF IRQ
	tick++;
}

void ISR_Ures(void) interrupt 4
{
	EZUSB_IRQ_CLEAR();
	USBIRQ = bmURES;				// Clear URES IRQ
}

//void ISR_IBN(void) interrupt 5  (Not in AN2131)
//{
//}

void ISR_Susp(void) interrupt 3
{
	Sleep = TRUE;				// Just set a flag for fw2.c to check.
	EZUSB_IRQ_CLEAR();
	USBIRQ = bmSUSP;
}

void ISR_Ep0in(void) interrupt 6
{
	EZUSB_IRQ_CLEAR();		// clear USB (INT2) request
	IN07IRQ = bmEP0;		// clear EP0-IN int request
}

void ISR_Ep0out(void) interrupt 7
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP0;
}

void ISR_Ep1in(void) interrupt 8
{
	EZUSB_IRQ_CLEAR();	
	IN07IRQ = bmEP1;
	
}

void ISR_Ep1out(void) interrupt 9
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP1;
	
}

void ISR_Ep2in(void) interrupt 0x0A
{
	EZUSB_IRQ_CLEAR();
	IN07IRQ = bmEP2;
}

void ISR_Ep2out(void) interrupt 0x0B
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP2;
}

void ISR_Ep3in(void) interrupt 0x0C
{
	EZUSB_IRQ_CLEAR();
	IN07IRQ = bmEP3;
}

void ISR_Ep3out(void) interrupt 0x0D
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP3;
}

void ISR_Ep4in(void) interrupt 0x0E
{
	EZUSB_IRQ_CLEAR();
	IN07IRQ = bmEP4;
}

void ISR_Ep4out(void) interrupt 0x0F
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP4;
}

void ISR_Ep5in(void) interrupt 0x10
{
	EZUSB_IRQ_CLEAR();
	IN07IRQ = bmEP5;
}

void ISR_Ep5out(void) interrupt 0x11
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP5;
}

void ISR_Ep6in(void) interrupt 0x12
{
	EZUSB_IRQ_CLEAR();
	IN07IRQ = bmEP6;
}

void ISR_Ep6out(void) interrupt 0x13
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP6;
}

void ISR_Ep7in(void) interrupt 0x14
{
	EZUSB_IRQ_CLEAR();
	IN07IRQ = bmEP7;
}

void ISR_Ep7out(void) interrupt 0x15
{
	EZUSB_IRQ_CLEAR();
	OUT07IRQ = bmEP7;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美腿丝袜亚洲三区| 91在线一区二区三区| 成人sese在线| 欧美猛男男办公室激情| 国产精品久久久久婷婷二区次| 亚洲成在人线在线播放| 成人看片黄a免费看在线| 欧美精品1区2区3区| 亚洲乱码精品一二三四区日韩在线| 精品在线观看视频| 欧美肥大bbwbbw高潮| 亚洲成av人片www| 色一区在线观看| 国产精品久久久久久久久免费桃花| 日本视频一区二区三区| 欧美午夜电影在线播放| 中文一区二区在线观看| 国产激情视频一区二区三区欧美| 3d动漫精品啪啪1区2区免费 | 成人精品一区二区三区四区| 91精品福利在线一区二区三区| 一区二区三区四区视频精品免费 | 日韩国产一区二| 欧美在线视频你懂得| 综合激情网...| 不卡视频一二三| 国产精品伦一区| 高清不卡一区二区在线| 国产丝袜在线精品| 国产成人高清视频| 欧美激情艳妇裸体舞| 国产91高潮流白浆在线麻豆| 欧美经典三级视频一区二区三区| 国产伦精品一区二区三区免费迷 | 久久久99精品免费观看不卡| 麻豆中文一区二区| 精品国产一区二区三区四区四| 日本大胆欧美人术艺术动态| 日韩一本二本av| 久久精品国产亚洲一区二区三区| 日韩精品影音先锋| 国产乱码精品1区2区3区| 国产肉丝袜一区二区| 成人精品一区二区三区中文字幕| 亚洲欧洲另类国产综合| 在线观看亚洲成人| 蜜臀av一区二区| 久久夜色精品一区| 成人动漫精品一区二区| 一区二区在线观看不卡| 欧美日韩久久一区| 看电影不卡的网站| 国产精品国模大尺度视频| 色综合久久88色综合天天| 亚洲成av人片一区二区梦乃 | 欧美日韩国产小视频在线观看| 日本在线不卡一区| 国产女人18毛片水真多成人如厕 | 一区二区三区中文字幕| 欧美肥妇bbw| 国产成人午夜视频| 一区二区三区在线看| 日韩一区国产二区欧美三区| 日本道免费精品一区二区三区| 亚洲综合色在线| 欧美变态tickling挠脚心| 成人丝袜18视频在线观看| 亚洲一区二区在线观看视频| 日韩一级片在线播放| aaa亚洲精品一二三区| 丝袜国产日韩另类美女| 中文字幕免费在线观看视频一区| 欧美喷水一区二区| 成人精品一区二区三区中文字幕| 五月天久久比比资源色| 国产精品精品国产色婷婷| 日韩一区二区影院| 欧洲一区二区三区在线| 国产成人一级电影| 老汉av免费一区二区三区| 亚洲私人影院在线观看| 久久毛片高清国产| 欧美精选午夜久久久乱码6080| fc2成人免费人成在线观看播放 | 亚洲综合激情网| 国产日韩欧美在线一区| 91 com成人网| 欧美在线观看一区二区| 丁香婷婷综合激情五月色| 奇米在线7777在线精品| 亚洲午夜精品久久久久久久久| 国产午夜精品一区二区| 日韩欧美不卡在线观看视频| 欧美性视频一区二区三区| 不卡一区二区三区四区| 国产精品99久久久久久似苏梦涵 | 丁香六月综合激情| 久久99精品国产麻豆婷婷| 亚洲福利视频三区| 亚洲精品乱码久久久久久| 亚洲国产成人私人影院tom| 欧美精品一区二区三区一线天视频| 欧美中文字幕一区二区三区亚洲| 成年人网站91| 成人精品电影在线观看| 国产成人自拍网| 国内精品国产成人| 久久精品国产色蜜蜜麻豆| 日本不卡不码高清免费观看| 日韩精品一区第一页| 亚洲亚洲精品在线观看| 夜夜精品视频一区二区| 亚洲一区在线播放| 午夜一区二区三区视频| 亚洲高清视频的网址| 亚洲成av人片在线| 丝袜a∨在线一区二区三区不卡| 舔着乳尖日韩一区| 日本伊人精品一区二区三区观看方式| 日韩国产高清影视| 精品中文字幕一区二区小辣椒| 久久电影网电视剧免费观看| 麻豆精品新av中文字幕| 国内精品在线播放| 国产精品99久久久久久久女警 | 欧美激情一区二区三区不卡 | 亚洲午夜精品久久久久久久久| 亚洲伊人色欲综合网| 亚洲成人在线网站| 欧美a级理论片| 国产一区二区三区| 99久久伊人网影院| 在线免费精品视频| 日韩欧美www| 中文字幕欧美区| 亚洲综合男人的天堂| 三级久久三级久久| 国产精品一级在线| 92国产精品观看| 69成人精品免费视频| 国产亚洲成aⅴ人片在线观看| 综合在线观看色| 午夜精品成人在线视频| 国产一区视频网站| 欧日韩精品视频| 日韩精品最新网址| 亚洲人成在线观看一区二区| 视频一区国产视频| 成人av网站免费| 欧美精品粉嫩高潮一区二区| 久久网站热最新地址| 亚洲乱码精品一二三四区日韩在线| 日韩精品乱码免费| www.日韩精品| 欧美成人午夜电影| 夜夜精品视频一区二区| 韩国v欧美v日本v亚洲v| 色婷婷综合久久久中文一区二区 | 欧美日韩亚洲综合一区| 精品国产不卡一区二区三区| 亚洲女同一区二区| 极品瑜伽女神91| 欧美亚洲动漫精品| 国产亚洲欧美一区在线观看| 亚洲成人在线免费| 972aa.com艺术欧美| 亚洲精品在线一区二区| 亚洲成人你懂的| av在线播放一区二区三区| 欧美va天堂va视频va在线| 亚洲小说欧美激情另类| 成人sese在线| 久久久久久久久久久久久夜| 日韩精品一卡二卡三卡四卡无卡| caoporn国产一区二区| 久久这里只有精品6| 天天av天天翘天天综合网色鬼国产 | 精品国产一区二区三区四区四| 亚洲综合在线五月| 99精品视频一区二区三区| 久久午夜羞羞影院免费观看| 日本午夜精品一区二区三区电影| 色88888久久久久久影院野外| 日本一区二区三区四区| 麻豆成人av在线| 欧美一区二区三区视频| 亚洲一区二区不卡免费| 色婷婷一区二区| 国产精品久久久久久亚洲伦| 国产成人精品亚洲午夜麻豆| 欧美精品一区二区久久久| 国产精品亚洲一区二区三区在线| 欧美一区二区高清| 日韩国产精品久久久| 欧美日韩精品一区二区三区蜜桃| 一区二区三区在线看| 色欧美乱欧美15图片| 一区二区三区在线观看视频| 色狠狠色噜噜噜综合网| 一片黄亚洲嫩模|