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

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

?? obj_svctempo.c

?? 該源碼是AT91RM9200處理器的loader文件
?? C
字號:
//*----------------------------------------------------------------------------//*      ATMEL Microcontroller Software Support  -  ROUSSET  -//*----------------------------------------------------------------------------//* The software is delivered "AS IS" without warranty or condition of any//* kind, either express, implied or statutory. This includes without//* limitation any warranty or condition with respect to merchantability or//* fitness for any particular purpose, or against the infringements of//* intellectual property rights of others.//*----------------------------------------------------------------------------//* File Name           : obj_svctempo.c//* Object              : service tempo//*//* 1.0 03/10/01 HI	    : Creation//*----------------------------------------------------------------------------#include "periph/system_timer/lib_st.h"#include "services/obj_svctempo.h"//* ====================================================================================//* ====================================================================================//*----------------------------------------------------------------------------//* Function Name       : AT91F_OpenCtlTempo//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_OpenCtlTempo( AT91PS_CtlTempo pCtlTempo, void const *pTempoTimer ){#ifdef DBG_DRV_TIMER	assert(pCtlTempo);#endif//* Check arguments of OpenSvcTempo	if (pCtlTempo == (AT91PS_CtlTempo)0)		return AT91C_ERROR_OPEN_CTRLTEMPO;//* Initialize CtlTempo fields	pCtlTempo->pFirstTempo = (AT91PS_SvcTempo)0;	pCtlTempo->pNewTempo =  (AT91PS_SvcTempo)0;//* default timer = system timer	pCtlTempo->pTimer  = (void *)pTempoTimer;	pCtlTempo->CtlTempoStart = AT91F_STStart;	pCtlTempo->CtlTempoStop  = AT91F_STStop;	pCtlTempo->CtlTempoSetTime = AT91F_STSetTime;	pCtlTempo->CtlTempoGetTime = AT91F_STGetTime;	pCtlTempo->CtlTempoIsStart = AT91F_STIsStart;	pCtlTempo->SvcTempoStart  = AT91F_SvcTempoStart;	pCtlTempo->SvcTempoStop   = AT91F_SvcTempoStop;	pCtlTempo->CtlTempoCreate = AT91F_CtlTempoCreate;	pCtlTempo->CtlTempoRemove = AT91F_CtlTempoRemove;	pCtlTempo->CtlTempoTick   = AT91F_CtlTempoTick;	pCtlTempo->pPrivateData = (void *) pCtlTempo;	return AT91C_OPEN_CTRLTEMPO_SUCCESS;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_STStart//* Object              : Start the systimer//* Input Parameters    : void * pTimer//* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_STStart(void * pTimer){	AT91PS_STDesc pSysTimer = (AT91PS_STDesc)pTimer;	AT91_STinit(pSysTimer, AT91_GetSTperiod(1000));	return AT91C_START_OK;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_STStop//* Object              ://* Input Parameters    : void * pTimer//* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_STStop(void * pTimer){	return AT91C_STOP_OK;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_STSetTime//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_STSetTime(AT91PS_CtlTempo pCtrl, unsigned int NewTime){	return 1;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_STGetTime//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_STGetTime(AT91PS_CtlTempo pCtrl){	return 1;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_STIsStart//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_STIsStart(AT91PS_CtlTempo pCtrl){	AT91PS_STDesc pSysTimer = (AT91PS_STDesc )pCtrl->pTimer;	return(AT91F_StGetState(pSysTimer->st_base));}//*----------------------------------------------------------------------------//* Function Name       : AT91F_CtlTempoCreate//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_CtlTempoCreate (					AT91PS_CtlTempo pCtrl,					AT91PS_SvcTempo pTempo){	AT91PS_CtlTempo pCtlTempo = (AT91PS_CtlTempo)(pCtrl->pPrivateData);	AT91PS_SvcTempo pTmp;	//* If no tempo is activated, then insert it	// * Check that this Tempo is not already in the current list	pTmp = pCtlTempo->pFirstTempo;	while (pTmp) {		if (pTmp == pTempo)			return 0;		pTmp = pTmp->pNextTempo;	}	//* Check that this Tempo is not already in the new list	pTmp = pCtlTempo->pNewTempo;	while (pTmp) {		if (pTmp == pTempo)			return 0;		pTmp = pTmp->pNextTempo;	}	//* Initialize Tempo structure	pTempo->flag = AT91E_SVCTEMPO_DIS;	pTempo->pPreviousTempo = (AT91PS_SvcTempo) 0;	pTempo->Start = pCtlTempo->SvcTempoStart;	pTempo->Stop  = pCtlTempo->SvcTempoStop;	pTempo->TickTempo   = 0;	pTempo->ReloadTempo = 0;	//* Insert Tempo in the list	if ( !(pCtlTempo->pFirstTempo) ) {		pTempo->pNextTempo = (AT91PS_SvcTempo) 0;		pCtlTempo->pFirstTempo = pTempo;	}	else {		if (pCtlTempo->pNewTempo)			pCtlTempo->pNewTempo->pPreviousTempo = pTempo;		pTempo->pNextTempo = pCtrl->pNewTempo;		pCtlTempo->pNewTempo = pTempo;	}	return 1;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_CtlTempoRemove//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_CtlTempoRemove (AT91PS_CtlTempo pCtrl, AT91PS_SvcTempo pTempo){	AT91PS_CtlTempo pCtlTempo = (AT91PS_CtlTempo)(pCtrl->pPrivateData);	AT91PS_SvcTempo pCurrentTempo = pCtlTempo->pFirstTempo;	// to go throught the tempo list	//* Remove first Tempo entry in the list	if(pCurrentTempo == pTempo) {		pCtlTempo->pFirstTempo = pCurrentTempo->pNextTempo;		pCtlTempo->pFirstTempo->pPreviousTempo = (AT91PS_SvcTempo)0;		return 1;	}	while( (pCurrentTempo->pNextTempo != pTempo) && (pCurrentTempo->pNextTempo != (AT91PS_SvcTempo)0 ) )			pCurrentTempo = (pCurrentTempo->pNextTempo);	//* No tempo to remove	if(	pCurrentTempo->pNextTempo == (AT91PS_SvcTempo)0 )		return 0;	//* Remove the selected tempo and rebuild the list	pCurrentTempo->pNextTempo = pCurrentTempo->pNextTempo->pNextTempo;	pCurrentTempo->pNextTempo->pPreviousTempo = pCurrentTempo;	pCtlTempo->pPrivateData = pCtlTempo;	return 1;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_CtlTempoTick//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_CtlTempoTick (AT91PS_CtlTempo pCtrl){	AT91PS_CtlTempo pCtlTempo = (AT91PS_CtlTempo)(pCtrl->pPrivateData);	AT91PS_SvcTempo pCurrentTempo;	// to go throught the tempo list	//* Add NewTempo in FirstTempo list?	if(pCtrl->pNewTempo != (AT91PS_SvcTempo)0 ) {		pCurrentTempo = pCtrl->pNewTempo;		while (pCurrentTempo->pNextTempo)			pCurrentTempo = pCurrentTempo->pNextTempo;		pCurrentTempo->pNextTempo = pCtlTempo->pFirstTempo;		pCtlTempo->pFirstTempo->pPreviousTempo = pCurrentTempo;		pCtlTempo->pFirstTempo = pCtrl->pNewTempo;	    //* Remove NewTempo list		pCtrl->pNewTempo = (AT91PS_SvcTempo)0;	}	//* Notify all the Tempo elements and executes callbacks	pCurrentTempo = pCtlTempo->pFirstTempo;	while (pCurrentTempo!=(AT91PS_SvcTempo)0) {		if (pCurrentTempo->flag == AT91E_SVCTEMPO_EN) {			if(pCurrentTempo->TickTempo > 0)				pCurrentTempo->TickTempo--;			if((pCurrentTempo->TickTempo  == 0) && (pCurrentTempo->TempoCallback)) {				if (pCurrentTempo->ReloadTempo)					pCurrentTempo->TickTempo = pCurrentTempo->ReloadTempo;				else					pCurrentTempo->flag = AT91E_SVCTEMPO_DIS;				pCurrentTempo->TempoCallback(AT91C_TIMEOUT_REACHED,pCurrentTempo->pPrivateData);			}		}		pCurrentTempo = pCurrentTempo->pNextTempo;	}	return 1;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_SvcTempoStart//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_SvcTempoStart (		AT91PS_SvcTempo pSvc,		unsigned int timeout,		unsigned int reload,		void (*callback) (AT91S_TempoStatus, void *),		void *pData){	pSvc->TickTempo   = timeout;	pSvc->ReloadTempo = reload;	pSvc->TempoCallback = callback;	pSvc->pPrivateData = pData;	pSvc->flag = AT91E_SVCTEMPO_EN;	return 1;}//*----------------------------------------------------------------------------//* Function Name       : AT91F_SvcTempoStop//* Object              ://* Input Parameters    ://* Output Parameters   : none//*----------------------------------------------------------------------------AT91S_TempoStatus AT91F_SvcTempoStop (	AT91PS_SvcTempo pSvc){	pSvc->flag = AT91E_SVCTEMPO_DIS;	return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频网站在线观看| 欧美亚洲综合久久| 在线观看91视频| 26uuu色噜噜精品一区二区| 一区二区三区在线视频观看58| 激情五月激情综合网| 欧美日韩一卡二卡三卡 | 国产原创一区二区| 欧美主播一区二区三区| 国产精品久久久久久久久图文区 | 日产欧产美韩系列久久99| 成人自拍视频在线| 久久久777精品电影网影网| 日韩高清在线电影| 欧美午夜影院一区| 亚洲欧美韩国综合色| 国产v综合v亚洲欧| 久久久久久电影| 国产一区二区三区最好精华液| 在线播放/欧美激情| 亚洲第一综合色| 欧美日韩视频在线一区二区| 亚洲一区二区三区在线| 91精品办公室少妇高潮对白| 亚洲欧美在线视频观看| 懂色中文一区二区在线播放| 久久女同性恋中文字幕| 国产精品资源在线观看| 亚洲精品在线免费播放| 国产一区 二区 三区一级| 精品国产91亚洲一区二区三区婷婷| 青草国产精品久久久久久| 678五月天丁香亚洲综合网| 性久久久久久久| 91精品国产91久久综合桃花| 日本欧美一区二区| 精品盗摄一区二区三区| 国产丶欧美丶日本不卡视频| 国产人成一区二区三区影院| 成人美女视频在线观看18| 国产精品美女www爽爽爽| 99精品1区2区| 亚洲国产美国国产综合一区二区| 欧美在线观看视频在线| 日本在线不卡视频| 国产午夜精品福利| 99免费精品视频| 亚洲国产精品视频| 欧美一级搡bbbb搡bbbb| 韩国成人在线视频| 国产精品久久久久久久久快鸭 | 视频一区视频二区中文字幕| 日韩午夜小视频| 国产乱妇无码大片在线观看| 国产精品嫩草影院av蜜臀| 91麻豆国产自产在线观看| 天天操天天色综合| 久久无码av三级| 91麻豆swag| 蜜乳av一区二区| 国产精品国产a| 欧美一级爆毛片| 不卡电影免费在线播放一区| 亚洲国产综合在线| 国产亚洲欧美色| 欧美午夜免费电影| 国内一区二区在线| 一区二区三区高清不卡| 精品久久人人做人人爽| 欧美综合一区二区| 国产伦理精品不卡| 香蕉成人啪国产精品视频综合网| 久久青草欧美一区二区三区| 色综合久久六月婷婷中文字幕| 日韩av中文在线观看| 亚洲欧美在线aaa| 精品日韩一区二区三区| 欧美在线观看禁18| 高清beeg欧美| 麻豆精品蜜桃视频网站| 亚洲激情图片qvod| 久久久久国产精品人| 69堂成人精品免费视频| 91麻豆视频网站| 国产精品一区二区久久不卡| 午夜欧美视频在线观看| 亚洲欧洲99久久| 欧美国产激情二区三区| 精品国产乱码久久久久久牛牛 | 日韩电影在线看| 亚洲美女一区二区三区| 亚洲国产精品二十页| 欧美一区二区日韩| 69成人精品免费视频| 欧美中文字幕亚洲一区二区va在线| 国产一区二区精品久久| 美女在线一区二区| 日韩黄色片在线观看| 亚洲狠狠爱一区二区三区| 亚洲欧美成aⅴ人在线观看| 亚洲国产成人私人影院tom| 精品999在线播放| 欧美成人性战久久| 日韩一级欧美一级| 日韩精品一区二区三区中文不卡 | 亚洲欧美激情在线| 1区2区3区欧美| 国产精品久久夜| 国产精品乱码妇女bbbb| 日本一区二区三级电影在线观看 | 午夜精品一区二区三区免费视频 | 亚洲婷婷国产精品电影人久久| 国产欧美视频一区二区三区| 久久综合国产精品| 精品粉嫩aⅴ一区二区三区四区| 日韩一区二区三区av| 日韩免费看网站| 久久一区二区三区四区| 久久久久成人黄色影片| 国产精品天美传媒| 国产精品理论片在线观看| 亚洲男人的天堂在线aⅴ视频| 综合分类小说区另类春色亚洲小说欧美| 中文一区一区三区高中清不卡| 视频一区二区三区在线| 欧美成人免费网站| 欧美精品xxxxbbbb| 91精品国产综合久久久久久漫画 | 亚洲国产aⅴ天堂久久| 亚洲综合色在线| 免费在线观看一区| 欧美日韩专区在线| 色香蕉久久蜜桃| 欧美性一区二区| 91精品国产综合久久蜜臀| 26uuu欧美| 亚洲免费观看高清| 日韩av不卡一区二区| 国产电影精品久久禁18| 日本久久一区二区| 精品乱码亚洲一区二区不卡| 国产精品毛片高清在线完整版| 一区二区三区在线免费视频| 日本欧美在线观看| 波多野结衣精品在线| 欧美日韩aaa| 国产女同互慰高潮91漫画| 亚洲一区自拍偷拍| 狠狠色狠狠色综合日日91app| 成人激情av网| 日韩一区二区免费电影| 亚洲欧美偷拍三级| 久久99在线观看| 在线免费观看一区| 久久精品亚洲乱码伦伦中文| 亚洲自拍另类综合| 国产成人啪免费观看软件| 欧美日韩国产在线观看| 国产精品久久三区| 久久99精品久久久久久久久久久久| 成人av资源在线观看| 日韩精品中文字幕在线一区| 亚洲另类色综合网站| 国产一区二区电影| 91精品久久久久久久91蜜桃 | 99视频有精品| 久久婷婷国产综合国色天香| 亚洲一区二区三区四区在线观看| 国产乱码精品一区二区三 | 久久精品国产一区二区| 色婷婷综合久久久久中文一区二区| 精品伦理精品一区| 日韩av一区二区在线影视| 色先锋aa成人| 国产精品久久久久久久裸模| 精品一区二区三区视频在线观看 | 免费成人性网站| 在线观看91视频| 亚洲精品精品亚洲| 成人免费视频视频在线观看免费| 色悠久久久久综合欧美99| 一级日本不卡的影视| 不卡区在线中文字幕| 欧美国产一区视频在线观看| 麻豆高清免费国产一区| 5858s免费视频成人| 亚洲成人午夜电影| 欧美在线三级电影| 一区二区三区成人在线视频| 91欧美一区二区| 亚洲欧美一区二区在线观看| 成人免费毛片a| 中文字幕日韩精品一区| 成人综合激情网| 中文字幕精品在线不卡| 成人免费毛片高清视频| 国产精品进线69影院| proumb性欧美在线观看| 国产精品不卡在线| 日本精品免费观看高清观看|