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

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

?? usb_pwr.c

?? STR7 USB Library Source code
?? C
字號:
/******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
* File Name          : usb_pwr.c
* Author             : MCD Application Team
* Date First Issued  : 27/10/2003
* Description        : connection/disconnection & power management
*
********************************************************************************/

#include "USB_lib.h"
#include "USB_conf.h"
#include "USB_pwr.h"

#define AD_DISP (0x001F81FC)
#define DE_DISP (0x0067807E)
#define PO_DISP (0x001F81BC)
#define AT_DISP (0x090401FC)
#define SU_DISP (0x001B81DA)

volatile BOOL fCellSuspended;
volatile BYTE bDeviceState=UNCONNECTED; /* USB device status */
DWORD dwLedVal; /* alpha-display value */
volatile BOOL fSuspendEnabled=TRUE;  /* true when suspend is possible */

struct {
	volatile RESUME_STATE eState;
	volatile BYTE bESOFcnt;
} ResumeS;


/*==========================================================================*/
/* PowerOn() */
/* handles switch-on conditions */
/* INPUT : */
/* OUTPUT: */
/*==========================================================================*/
RESULT PowerOn()
{
 WORD wRegVal;

	/*** cable plugged-in ? ***/
	/*
		while(!CablePluggedIn());
	*/
	/*** CNTR_PWDN = 0 ***/
	wRegVal = CNTR_FRES;
	_SetCNTR(wRegVal);

	/*** CNTR_FRES = 0 ***/
    wInterrupt_Mask = 0;
    _SetCNTR(wInterrupt_Mask);
	/*** Clear pending interrupts ***/
    _SetISTR(0);
	/*** Set interrupt mask ***/
    wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM;
    _SetCNTR(wInterrupt_Mask);

	return SUCCESS;
} /* PowerOn */

/*==========================================================================*/
/* PowerOff() */
/* handles switch-off conditions */
/* INPUT : */
/* OUTPUT: */
/*==========================================================================*/
RESULT PowerOff()
{
	/* disable all ints and force USB reset */
    _SetCNTR(CNTR_FRES);
    /* clear interrupt status register */
    _SetISTR(0);

    /* switch-off device */
    _SetCNTR(CNTR_FRES+CNTR_PDWN);
    /* sw variables reset */
	/* ... */

	return SUCCESS;
} /* PowerOff */
/*==========================================================================*/
/* Suspend() */
/* sets suspend mode operating conditions */
/* INPUT : */
/* OUTPUT: */
/*==========================================================================*/
void Suspend(void)
{
 WORD wCNTR;
    fCellSuspended= TRUE;
	/* suspend preparation */
	/* ... */

	/* macrocell enters suspend mode */
    wCNTR = _GetCNTR();
    wCNTR |= CNTR_FSUSP;
    _SetCNTR(wCNTR);

/* ------------------ ONLY WITH BUS-POWERED DEVICES ---------------------- */
	/* power reduction */
	/* ... on connected devices */

    /* force low-power mode in the macrocell */
    wCNTR = _GetCNTR();
    wCNTR |= CNTR_LPMODE;
    _SetCNTR(wCNTR);

    /* switch-off the clocks */
    /* ... */

}/* Suspend */

/*==========================================================================*/
/* Resume_Init() */
/* handles wake-up restoring normal operations */
/* INPUT : */
/* OUTPUT: */
/*==========================================================================*/
void Resume_Init(void)
{
 WORD wCNTR;

    fCellSuspended= FALSE;

/* ------------------ ONLY WITH BUS-POWERED DEVICES ---------------------- */
    /* restart the clocks */
    /* ...  */

    /* CNTR_LPMODE = 0 */
    wCNTR = _GetCNTR();
    wCNTR &= (~CNTR_LPMODE);
    _SetCNTR(wCNTR);

	/* restore full power */
	/* ... on connected devices */

   	/* reset FSUSP bit */
   	_SetCNTR(IMR_MSK);

	/* reverse suspend preparation */
	/* ... */

}/* Resume_Init() */

/*==========================================================================*/
/* Resume() */
/* This is the state machine handling resume operations and timing sequence. */
/* The control is based on the ResumeS structure variables and on the ESOF */
/* interrupt calling this subroutine without changing machine state.*/
/* */
/* IN  : a state machine value (RESUME_STATE) */
/*       RESUME_ESOF does'nt change ResumeS.eState */
/*		  allowing decrementing of the ESOF counter in different states */
/* OUT : none */
/*==========================================================================*/
void Resume(RESUME_STATE eResumeSetVal)
{
 WORD wCNTR;
 WORD wRegVal;

	if(eResumeSetVal != RESUME_ESOF)
			ResumeS.eState = eResumeSetVal;

	switch(ResumeS.eState)
	{
		case RESUME_EXTERNAL:
			Resume_Init();
	        wRegVal = GetFNR();
    		if(wRegVal & FNR_RXDP) /* 10 & 11 false conditions */
     		{
    	     		Suspend();
     		}
		    ResumeS.eState = RESUME_OFF;
			break;
		case RESUME_INTERNAL:
			Resume_Init();
		    ResumeS.eState = RESUME_START;
			break;
		case RESUME_LATER:
			ResumeS.bESOFcnt = 2;
		    ResumeS.eState = RESUME_WAIT;
			break;
		case RESUME_WAIT:
			ResumeS.bESOFcnt--;
			if(ResumeS.bESOFcnt == 0)
			    ResumeS.eState = RESUME_START;
			break;
		case RESUME_START:
		    wCNTR = _GetCNTR();
		    wCNTR |= CNTR_RESUME;
		    _SetCNTR(wCNTR);
		    ResumeS.eState = RESUME_ON;
		    ResumeS.bESOFcnt = 10;
			break;
		case RESUME_ON:
			ResumeS.bESOFcnt--;
			if(ResumeS.bESOFcnt == 0)
			{
			    wCNTR = _GetCNTR();
			    wCNTR &= (~CNTR_RESUME);
			    _SetCNTR(wCNTR);
			    ResumeS.eState = RESUME_OFF;
			}
			break;
		case RESUME_OFF:
		case RESUME_ESOF:
		default:
		    ResumeS.eState = RESUME_OFF;
			break;
	}
}/* Resume() */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色噜噜狠狠色综合中国| 国产精品自拍毛片| 亚洲乱码精品一二三四区日韩在线| 亚洲精品一区二区三区香蕉| 欧美理论在线播放| 欧美日韩免费电影| 91精品国产免费久久综合| 3d动漫精品啪啪一区二区竹菊 | 国产美女一区二区| 欧美videossexotv100| 久久超碰97人人做人人爱| 亚洲自拍偷拍麻豆| 在线电影一区二区三区| 精品一区二区三区视频在线观看| 午夜视频在线观看一区二区三区| 香蕉久久夜色精品国产使用方法| 午夜精品一区二区三区三上悠亚| 亚洲亚洲人成综合网络| 美女mm1313爽爽久久久蜜臀| 国内久久精品视频| 成人高清伦理免费影院在线观看| 99久久精品免费看国产免费软件| 日本乱人伦一区| 欧美日韩一区成人| 精品不卡在线视频| 久久精品一区二区三区av| 中文字幕日韩一区| 亚洲成人综合在线| 国产乱一区二区| 91麻豆免费看片| 91精品国产综合久久久蜜臀粉嫩| 欧美变态tickling挠脚心| 国产精品久久久久影院| 亚洲va欧美va国产va天堂影院| 美日韩黄色大片| 99vv1com这只有精品| 制服丝袜一区二区三区| 国产网红主播福利一区二区| 亚洲午夜一区二区三区| 高清免费成人av| 欧美一区二区二区| 亚洲精品乱码久久久久久| 国产一区欧美一区| 欧美性xxxxxxxx| 国产精品剧情在线亚洲| 久久99精品久久只有精品| 91精品福利在线| 国产精品毛片高清在线完整版| 亚洲人一二三区| 另类小说视频一区二区| 色美美综合视频| 国产精品美女久久久久aⅴ| 蜜臀久久久99精品久久久久久| 91国产免费观看| 国产精品美女久久久久久| 国产乱人伦精品一区二区在线观看| 欧美日韩国产综合一区二区| 亚洲欧洲av色图| 国产a区久久久| 久久综合给合久久狠狠狠97色69| 日韩精品乱码av一区二区| 在线观看不卡一区| 亚洲精品成人悠悠色影视| 成人天堂资源www在线| 2020国产精品久久精品美国| 天堂午夜影视日韩欧美一区二区| 欧美国产1区2区| 久久成人免费日本黄色| 日韩一区二区在线观看视频| 天天色综合天天| 麻豆久久久久久久| 成人激情免费网站| 国产精品免费视频一区| 国产a视频精品免费观看| 久久精品人人做人人爽97| 九一久久久久久| 久久久久国产精品麻豆| 国产精华液一区二区三区| 欧美精品一区二区三区在线播放| 久久激情综合网| 日韩精品一区二区三区三区免费| 美女国产一区二区三区| 精品国产三级电影在线观看| 麻豆视频一区二区| 国产片一区二区| www.欧美日韩| 亚洲综合成人在线| 欧美高清dvd| 久久9热精品视频| 国产偷v国产偷v亚洲高清| av男人天堂一区| 亚洲欧美福利一区二区| 欧美日韩久久久久久| 免费成人你懂的| 国产精品久久三| 欧美日韩一区二区在线观看| 老司机免费视频一区二区三区| 久久久久久**毛片大全| 91在线精品秘密一区二区| 亚洲一二三区视频在线观看| 欧美电影免费观看高清完整版在线 | 亚洲电影第三页| 精品国产免费人成在线观看| 不卡视频一二三四| 亚洲成av人在线观看| 国产色产综合产在线视频| 在线视频国内自拍亚洲视频| 人人爽香蕉精品| 一色屋精品亚洲香蕉网站| 4438x亚洲最大成人网| 福利电影一区二区| 午夜激情综合网| 国产精品久久综合| 欧美一区二区免费视频| hitomi一区二区三区精品| 日本系列欧美系列| 亚洲同性gay激情无套| 亚洲精品一区二区在线观看| 欧美综合天天夜夜久久| 粉嫩嫩av羞羞动漫久久久| 无码av中文一区二区三区桃花岛| 国产欧美精品一区二区色综合| 7777精品伊人久久久大香线蕉超级流畅 | 欧美精品一区二区在线观看| 一本久久a久久免费精品不卡| 国产在线视视频有精品| 午夜伦欧美伦电影理论片| 国产精品久久久久久亚洲毛片 | 玉米视频成人免费看| 久久精品网站免费观看| 欧美一级日韩一级| 欧美三级蜜桃2在线观看| 菠萝蜜视频在线观看一区| 国产在线看一区| 奇米四色…亚洲| 午夜影视日本亚洲欧洲精品| 亚洲色图一区二区三区| 中文成人综合网| 久久精品欧美日韩| 精品国产伦一区二区三区观看体验| 欧美日韩一区二区三区四区| 在线观看亚洲精品| 欧洲精品一区二区三区在线观看| 成人av资源网站| caoporn国产精品| jvid福利写真一区二区三区| 国产成人精品亚洲777人妖| 紧缚捆绑精品一区二区| 久草这里只有精品视频| 九九热在线视频观看这里只有精品| 日产欧产美韩系列久久99| 免费不卡在线观看| 裸体在线国模精品偷拍| 国内成+人亚洲+欧美+综合在线| 日产国产欧美视频一区精品| 美女在线一区二区| 国产一区二区日韩精品| 国产高清无密码一区二区三区| 国产激情一区二区三区| 丰满放荡岳乱妇91ww| 99久久综合狠狠综合久久| 91麻豆免费看| 欧美男人的天堂一二区| 日韩欧美一区二区三区在线| 日韩免费看的电影| 国产欧美一区二区三区网站| 自拍偷拍亚洲欧美日韩| 亚洲香蕉伊在人在线观| 久久爱另类一区二区小说| 国产91精品精华液一区二区三区| 成人综合在线网站| 色婷婷激情久久| 日韩精品一区二区在线观看| 日本一区二区三级电影在线观看| 中文字幕一区二区在线播放| 一区二区三区电影在线播| 丝袜美腿高跟呻吟高潮一区| 国内一区二区视频| 在线免费一区三区| 日韩一级高清毛片| 国产精品成人免费精品自在线观看| 亚洲精品国产精华液| 久久99久久久久| av福利精品导航| 欧美肥妇free| 国产精品激情偷乱一区二区∴| 亚洲综合精品久久| 国产一区在线观看麻豆| 欧美自拍丝袜亚洲| 久久婷婷国产综合精品青草| 亚洲欧美精品午睡沙发| 精品一区二区影视| 在线视频你懂得一区| 日本一区二区三级电影在线观看| 亚洲1区2区3区4区| 波多野结衣中文字幕一区| 欧美不卡在线视频| 亚洲高清视频中文字幕| 波多野结衣在线aⅴ中文字幕不卡| 在线播放91灌醉迷j高跟美女|