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

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

?? guitimer.c

?? ucgui在ARM44B0目標板上的移植代碼支持16級灰度
?? C
字號:
/***********************************************************************************************************                                                uC/GUI*                        Universal graphic software for embedded applications**                       (c) Copyright 2002, Micrium Inc., Weston, FL*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH**              礐/GUI is protected by international copyright laws. Knowledge of the*              source code may not be used to write a similar product. This file may*              only be used in accordance with a license and should not be redistributed*              in any way. We appreciate your understanding and fairness.*----------------------------------------------------------------------File        : GUITimer.cPurpose     : Supplies timers for new emWin GSC-------------------------------------------------------------------------------------------------END-OF-HEADER------------------------------*/#include <stddef.h>           /* needed for definition of NULL */#include "GUI_Protected.H"/*  *****************************************************************  *                                                               *  *              Config defaults                                  *  *                                                               *  ******************************************************************//*      *************************************************************      *                                                           *      *                 Object definition                         *      *                                                           *      **************************************************************/typedef struct {  GUI_TIMER_CALLBACK* cb;  GUI_TIMER_Handle hNext;  int Flags;	U32 Context;	GUI_TIMER_TIME t0;	GUI_TIMER_TIME Period;} GUI_TIMER_Obj;/*  *****************************************************************  *                                                               *  *              Static data                                      *  *                                                               *  ******************************************************************/GUI_TIMER_Handle hFirstTimer;/*  ********************************************************************  *                                                                  *  *                 Macros for internal use                          *  *                                                                  *  *********************************************************************/#define GUI_TIMER_H2P(h) (GUI_TIMER_Obj*)GUI_ALLOC_H2P(h)/*  ********************************************************************  *                                                                  *  *                    Static routines                               *  *                                                                  *  *********************************************************************/static void Unlink(GUI_TIMER_Handle hTimer) {  GUI_TIMER_Obj* pTimer = GUI_TIMER_H2P(hTimer);  GUI_TIMER_Handle hi;  GUI_TIMER_Obj*   pi;/* Check if it is the first element */  if (hFirstTimer == hTimer) {    hFirstTimer = pTimer->hNext;    return;	}  hi = hFirstTimer;/* Try to find it in the list ... */  while(hi) {    /* GUI_ASSERT(hi<1000,0); */    pi = GUI_TIMER_H2P(hi);    if (pi->hNext == hTimer) {      pi->hNext = pTimer->hNext;      break;		}            hi = pi->hNext;  }  }/*********************************************************************   Link new Timer	 ==============	This routine inserts the new timer (referenced by its handle) into	the linked list. The linked list is sorted according to timestamps.	The first element is the timer which expires first.*/void Link(GUI_TIMER_Handle hNew) {  GUI_TIMER_Obj*   pNew        = GUI_TIMER_H2P(hNew);  GUI_TIMER_Obj*   pTimer;  GUI_TIMER_Obj*   pNext;  GUI_TIMER_Handle hNext;  if (hFirstTimer ==0) { /* List is empty, make it the only element */    hFirstTimer = hNew;	  pNew->hNext = 0;  } else {    GUI_TIMER_Obj* pFirstTimer      = GUI_TIMER_H2P(hFirstTimer);/* Check if we have to make it the first element */    if ((pNew->t0 - pFirstTimer->t0) <=0) {      pNew->hNext = hFirstTimer;      hFirstTimer = hNew;			return;		} else {      GUI_TIMER_Handle hTimer = hFirstTimer;/* Put it into the list */      do {        pTimer       = GUI_TIMER_H2P(hTimer);        hNext        = pTimer->hNext;        if (hNext ==0)					goto Append;        pNext      = GUI_TIMER_H2P(hNext);				if ((pNew->t0 - pNext->t0) <=0) {          pNew->hNext  = hNext;          pTimer->hNext= hNew;          return;				}			} while(1);/* Put it at the end of the list */Append:      pNew->hNext  = hNext;      pTimer->hNext= hNew;      return;		}  }}/*  ********************************************************************  *  *        Static routines:  Exec  *  *********************************************************************/int GUI_TIMER_Exec(void) {  int r = 0;  GUI_TIMER_TIME t = GUI_GetTime();  GUI_LOCK(); {    while (hFirstTimer) {     	GUI_TIMER_Obj* pTimer = GUI_TIMER_H2P(hFirstTimer);      if ((pTimer->t0-t) <=0) {        GUI_TIMER_MESSAGE tm;        tm.Time = t;				tm.Context = pTimer->Context;        hFirstTimer = pTimer->hNext;				pTimer->cb(&tm);        r = 1;			} else			  break;    }    /*		GUI_TIMER_Obj* pObj = GUI_TIMER_H2P(hObj);    pObj->t0 = Time;    */  } GUI_UNLOCK();   return r;}/*  ********************************************************************  *                                                                  *  *        Exported routines:  Create                                *  *                                                                  *  *********************************************************************/GUI_TIMER_Handle GUI_TIMER_Create      (    GUI_TIMER_CALLBACK* cb,                                    int Time,                                    U32 Context,                                    int Flags) {  GUI_TIMER_Handle hObj;  GUI_TIMER_Obj* pObj;  GUI_LOCK();  GUI_USE_PARA(Flags);  GUI_USE_PARA(Time);  GUI_pfTimerExec = GUI_TIMER_Exec;	{    /* Alloc memory for obj */    hObj = GUI_ALLOC_ALLOC(sizeof(GUI_TIMER_Obj));    pObj = GUI_TIMER_H2P(hObj);    /* init member variables */    pObj->cb = cb;		pObj->Context = Context;    /* Link it */		Link(hObj);	} GUI_UNLOCK();  return hObj;}/*  ********************************************************************  *                                                                  *  *        Exported routines:  Delete                                *  *                                                                  *  *********************************************************************/void GUI_TIMER_Delete(GUI_TIMER_Handle hObj) {/* Unlink Timer */  GUI_LOCK();    Unlink(hObj);    GUI_ALLOC_FREE(hObj);  GUI_UNLOCK();}/*  ********************************************************************  *                                                                  *  *        Exported routines:  Various methods                       *  *                                                                  *  *********************************************************************/void GUI_TIMER_SetPeriod(GUI_TIMER_Handle hObj, GUI_TIMER_TIME Period) {  GUI_LOCK(); {    GUI_TIMER_Obj* pObj = GUI_TIMER_H2P(hObj);    pObj->Period = Period;  } GUI_UNLOCK(); }void GUI_TIMER_SetTime(GUI_TIMER_Handle hObj, GUI_TIMER_TIME Time) {  GUI_LOCK(); {   	GUI_TIMER_Obj* pObj = GUI_TIMER_H2P(hObj);    pObj->t0 = Time;  } GUI_UNLOCK(); }void GUI_TIMER_SetDelay(GUI_TIMER_Handle hObj, GUI_TIMER_TIME Delay) {  GUI_LOCK(); {   	GUI_TIMER_Obj* pObj = GUI_TIMER_H2P(hObj);    pObj->t0 = Delay;		Unlink(hObj);		Link(hObj);  } GUI_UNLOCK(); }void GUI_TIMER_Restart(GUI_TIMER_Handle hObj) {  GUI_LOCK(); {   	GUI_TIMER_Obj* pObj = GUI_TIMER_H2P(hObj);    pObj->t0 = GUI_GetTime() +pObj->Period;		Unlink(hObj);		Link(hObj);  } GUI_UNLOCK(); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一级二级| 亚洲成人av在线电影| 亚洲一区二区在线免费看| 水野朝阳av一区二区三区| 国产传媒欧美日韩成人| 欧美三级日韩三级| 国产精品福利影院| 激情五月婷婷综合网| 欧美影院一区二区三区| 国产午夜精品一区二区三区嫩草| 天天操天天干天天综合网| 国产精品18久久久久久久久| 欧美日本高清视频在线观看| 自拍av一区二区三区| 国产精品1024| 久久综合久久综合久久| 日韩专区在线视频| 欧美日韩一区小说| 亚洲精品视频在线观看网站| 国产精品一区二区在线观看不卡| 日韩一区二区在线免费观看| 午夜免费久久看| 在线视频一区二区免费| 国产精品电影一区二区| 成人免费毛片嘿嘿连载视频| 日韩片之四级片| 丝袜美腿亚洲综合| 欧美日韩国产一二三| 一区二区三区四区国产精品| 一本色道久久综合精品竹菊| 亚洲视频香蕉人妖| 91蜜桃视频在线| 亚洲素人一区二区| av资源网一区| 亚洲欧洲成人自拍| av动漫一区二区| 亚洲欧洲一区二区三区| 波多野洁衣一区| 最新高清无码专区| 91黄色免费网站| 亚洲bt欧美bt精品| 欧美一级黄色大片| 国产一区高清在线| 久久久电影一区二区三区| 国产成人精品综合在线观看| 中文字幕一区二区三区色视频| 99精品视频在线观看| 亚洲乱码国产乱码精品精小说| 色菇凉天天综合网| 亚洲va天堂va国产va久| 日韩美女主播在线视频一区二区三区 | 国产成a人无v码亚洲福利| 久久综合九色综合97_久久久| 国产精品99久久久久| 亚洲欧美综合在线精品| 欧美性欧美巨大黑白大战| 免费成人在线网站| 欧美国产日韩在线观看| 欧美在线视频不卡| 久久国产生活片100| 国产精品久久久久久久久动漫| 色哟哟一区二区在线观看| 肉色丝袜一区二区| 国产片一区二区| 欧洲一区在线观看| 经典三级在线一区| 亚洲女人****多毛耸耸8| 91精品国产综合久久精品app| 国产伦理精品不卡| 一区二区三区久久| 久久久久久亚洲综合| 色婷婷av一区二区三区gif| 蜜桃视频在线观看一区二区| 国产精品久久国产精麻豆99网站 | 国产精品亚洲成人| 亚洲精品一二三四区| 精品人在线二区三区| 99re成人在线| 国产综合色在线| 亚洲一二三四区不卡| 国产欧美日韩视频一区二区| 欧美片网站yy| 91一区一区三区| 国产精品538一区二区在线| 亚洲大片免费看| 1000精品久久久久久久久| 欧美mv日韩mv国产| 91久久人澡人人添人人爽欧美| 蜜臀av一区二区| 亚洲一二三专区| 亚洲品质自拍视频| 亚洲国产成人自拍| 精品第一国产综合精品aⅴ| 欧美视频在线观看一区二区| 成人黄色电影在线| 国产精品正在播放| 久久99在线观看| 午夜精品久久久久久久久久| 亚洲欧美韩国综合色| 国产精品国产三级国产aⅴ原创| 日韩欧美中文字幕精品| 91麻豆精品国产91久久久资源速度 | 一区二区三区视频在线看| 国产夜色精品一区二区av| 日韩一二三四区| 欧美一区二区三区在线看| 欧美视频一区二区在线观看| 91在线视频在线| av激情亚洲男人天堂| 不卡的av在线播放| 成人免费的视频| 成人性生交大片免费看中文 | 国产精品久久免费看| 国产午夜精品在线观看| 国产欧美日韩在线| 国产精品色在线| 中文字幕第一页久久| 国产精品美女一区二区| 国产精品福利一区| 亚洲精品日韩一| 亚洲一区二区五区| 天天综合网天天综合色| 男女视频一区二区| 精品一区二区久久久| 国产麻豆欧美日韩一区| 国v精品久久久网| 99精品黄色片免费大全| 欧美最新大片在线看| 欧美精品三级在线观看| 精品国产露脸精彩对白 | 7777精品伊人久久久大香线蕉超级流畅 | 午夜视频久久久久久| 免费在线观看一区| 精品一区二区三区免费播放| 国产成人在线视频网址| 色综合色狠狠综合色| 欧美在线制服丝袜| 欧美一级二级三级乱码| 久久精品在线观看| 亚洲综合丝袜美腿| 极品尤物av久久免费看| 成人激情黄色小说| 精品视频在线免费观看| 日韩精品一区二区三区视频| 欧美精品一区二区在线观看| 国产精品初高中害羞小美女文| 亚洲伊人伊色伊影伊综合网| 精品亚洲成a人在线观看 | 国产精品久久久久久久久久免费看| 一区在线中文字幕| 视频一区视频二区中文| 国产69精品久久777的优势| 欧美性xxxxx极品少妇| 国产亚洲制服色| 亚洲夂夂婷婷色拍ww47| 国产成人av电影在线| 911国产精品| 中文字幕一区视频| 精品一二三四区| 欧美视频一区二区在线观看| 国产亚洲福利社区一区| 亚洲国产综合91精品麻豆| 粉嫩久久99精品久久久久久夜| 欧美精品国产精品| 亚洲视频一区在线| 国产一区二区看久久| 欧美电影一区二区| 国产精品久久久久久久久免费丝袜| 日韩影院免费视频| 色欧美片视频在线观看在线视频| 精品久久久久香蕉网| 天天色图综合网| 色噜噜偷拍精品综合在线| 国产网红主播福利一区二区| 日韩国产欧美视频| 在线观看亚洲a| 国产精品美女久久久久aⅴ国产馆| 麻豆精品精品国产自在97香蕉 | 国产成人av一区二区三区在线观看| 欧美另类久久久品| 一区二区三区中文免费| av一区二区不卡| 国产女主播在线一区二区| 乱一区二区av| 7777精品伊人久久久大香线蕉完整版 | 日韩欧美自拍偷拍| 视频一区国产视频| 色久综合一二码| 亚洲欧美色综合| 成人精品gif动图一区| 久久久久成人黄色影片| 六月婷婷色综合| 日韩欧美国产一区二区三区| 日韩黄色小视频| 91精品国产综合久久国产大片 | 亚洲制服丝袜av| 欧美调教femdomvk| 婷婷中文字幕综合| 3d动漫精品啪啪| 奇米一区二区三区|