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

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

?? clk.c

?? 本光盤提供了 嵌入式系統一些通用模塊源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
* Description : Set the date and time of the time-of-day clock
* Arguments   : month     is the desired month   (1..12)
*               day       is the desired day     (1..31)
*               year      is the desired year    (2xxx)
*               hr        is the desired hour    (0..23)
*               min       is the desired minutes (0..59)
*               sec       is the desired seconds (0..59)
* Returns     : None.
* Notes       : It is assumed that you are specifying a correct date and time (i.e. there is no range
*               checking done by this function).
*********************************************************************************************************
*/

#if  CLK_DATE_EN
void  ClkSetDateTime (INT8U month, INT8U day, INT16U year, INT8U hr, INT8U min, INT8U sec)
{
    INT8U err;


    OSSemPend(ClkSem, 0, &err);                  /* Gain exclusive access to time-of-day clock         */
    ClkMonth = month;
    ClkDay   = day;
    ClkYear  = year;
    ClkHr    = hr;
    ClkMin   = min;
    ClkSec   = sec;
    ClkUpdateDOW();                              /* Compute the day of the week (i.e. Sunday ...)      */
    OSSemPost(ClkSem);                           /* Release access to time-of-day clock                */
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                          SET TIME ONLY
*
* Description : Set the time-of-day clock
* Arguments   : hr        is the desired hour    (0..23)
*               min       is the desired minutes (0..59)
*               sec       is the desired seconds (0..59)
* Returns     : None.
* Notes       : It is assumed that you are specifying a correct time (i.e. there is no range checking
*               done by this function).
*********************************************************************************************************
*/

void  ClkSetTime (INT8U hr, INT8U min, INT8U sec)
{
    OS_ENTER_CRITICAL();                         /* Gain exclusive access to time-of-day clock         */
    ClkHr  = hr;
    ClkMin = min;
    ClkSec = sec;
    OS_EXIT_CRITICAL();                          /* Release access to time-of-day clock                */
}

/*$PAGE*/
/*
*********************************************************************************************************
*                          SIGNAL CLOCK MODULE THAT A 'CLOCK TICK' HAS OCCURRED
*
* Description : This function is called by the 'clock tick' ISR on every tick.  This function is thus
*               responsible for counting the number of clock ticks per second.  When a second elapses,
*               this function will signal the time-of-day clock task.
* Arguments   : None.
* Returns     : None.
* Note(s)     : CLK_DLY_TICKS must be set to the number of ticks to produce 1 second.  
*               This would typically correspond to OS_TICKS_PER_SEC if you use uC/OS-II.
*********************************************************************************************************
*/

void  ClkSignalClk (void)
{
    ClkTickCtr++;                           /* count the number of 'clock ticks' for one second        */
    if (ClkTickCtr >= CLK_DLY_TICKS) {
        ClkTickCtr = 0;
        OSSemPost(ClkSemSec);               /* Signal that one second elapsed                          */
    }
}

/*
*********************************************************************************************************
*                                        TIME-OF-DAY CLOCK TASK
*
* Description : This task is created by ClkInit() and is responsible for updating the time and date.
*               ClkTask() executes every second.
* Arguments   : None.
* Returns     : None.
* Notes       : CLK_DLY_TICKS must be set to produce 1 second delays.
*********************************************************************************************************
*/

void  ClkTask (void *data)
{
    INT8U err;


    data = data;                            /* Avoid compiler warning (uC/OS requirement)              */
    for (;;) {

#if CLK_USE_DLY
        OSTimeDlyHMSM(0, 0, 1, 0);          /* Delay for one second                                    */
#else
        OSSemPend(ClkSemSec, 0, &err);      /* Wait for one second to elapse                           */
#endif

        OSSemPend(ClkSem, 0, &err);         /* Gain exclusive access to time-of-day clock              */
        if (ClkUpdateTime() == TRUE) {      /* Update the TIME (i.e. HH:MM:SS)                         */
#if CLK_DATE_EN
            ClkUpdateDate();                /* And date if a new day (i.e. MM-DD-YY)                   */
#endif
        }
#if CLK_TS_EN && CLK_DATE_EN
        ClkTS = ClkMakeTS(ClkMonth, ClkDay, ClkYear, ClkHr, ClkMin, ClkSec);
#endif
        OSSemPost(ClkSem);                  /* Release access to time-of-day clock                     */
    }
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                            UPDATE THE DATE
*
* Description : This function is called to update the date (i.e. month, day and year)
* Arguments   : None.
* Returns     : None.
* Notes       : This function updates ClkDay, ClkMonth, ClkYear and ClkDOW.
*********************************************************************************************************
*/

#if CLK_DATE_EN
static  void  ClkUpdateDate (void)
{
    BOOLEAN newmonth;


    newmonth = TRUE;
    if (ClkDay >= ClkMonthTbl[ClkMonth].MonthDays) {  /* Last day of the month?                        */
        if (ClkMonth == 2) {                          /* Is this February?                             */
            if (ClkIsLeapYear(ClkYear) == TRUE) {     /* Yes, Is this a leap year?                     */
                if (ClkDay >= 29) {                   /* Yes, Last day in february?                    */
                    ClkDay = 1;                       /* Yes, Set to 1st day in March                  */
                } else {
                    ClkDay++;
                    newmonth = FALSE;
                }
            } else {
                ClkDay = 1;
            }
        } else {
            ClkDay = 1;
        }
    } else {
        ClkDay++;
        newmonth = FALSE;
    }
    if (newmonth == TRUE) {                      /* See if we have completed a month                   */
        if (ClkMonth >= 12) {                    /* Yes, Is this december ?                            */
            ClkMonth = 1;                        /* Yes, set month to january...                       */
            ClkYear++;                           /*      ...we have a new year!                        */
        } else {
            ClkMonth++;                          /* No,  increment the month                           */
        }
    }
    ClkUpdateDOW();                              /* Compute the day of the week (i.e. Sunday ...)      */
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                         COMPUTE DAY-OF-WEEK
*
* Description : This function computes the day of the week (0 == Sunday) based on the current month,
*               day and year.
* Arguments   : None.
* Returns     : None.
* Notes       : - This function updates ClkDOW.
*               - This function is called by ClkUpdateDate().
*********************************************************************************************************
*/
#if CLK_DATE_EN
static  void  ClkUpdateDOW (void)
{
    INT16U dow;


    dow = ClkDay + ClkMonthTbl[ClkMonth].MonthVal;
    if (ClkMonth < 3) {
        if (ClkIsLeapYear(ClkYear)) {
            dow--;
        }
    }
    dow    += ClkYear + (ClkYear / 4);
    dow    += (ClkYear / 400) - (ClkYear / 100);
    dow    %= 7;
    ClkDOW  = dow;
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                            UPDATE THE TIME
*
* Description : This function is called to update the time (i.e. hours, minutes and seconds)
* Arguments   : None.
* Returns     : TRUE     if we have completed one day.
*               FALSE    otherwise
* Notes       : This function updates ClkSec, ClkMin and ClkHr.
*********************************************************************************************************
*/

static  BOOLEAN  ClkUpdateTime (void)
{
    BOOLEAN newday;


    newday = FALSE;                         /* Assume that we haven't completed one whole day yet      */
    if (ClkSec >= 59) {                     /* See if we have completed one minute yet                 */
        ClkSec = 0;                         /* Yes, clear seconds                                      */
        if (ClkMin >= 59) {                 /*    See if we have completed one hour yet                */
            ClkMin = 0;                     /*    Yes, clear minutes                                   */
            if (ClkHr >= 23) {              /*        See if we have completed one day yet             */
                ClkHr = 0;                  /*        Yes, clear hours ...                             */
                newday    = TRUE;           /*        ... change flag to indicate we have a new day    */
            } else {
                ClkHr++;                    /*        No,  increment hours                             */
            }
        } else {
            ClkMin++;                       /*    No,  increment minutes                               */
        }
    } else {
        ClkSec++;                           /* No,  increment seconds                                  */
    }
    return (newday);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美一区二区三区综合| 懂色av中文字幕一区二区三区| 色综合久久综合网欧美综合网| 日韩一区欧美小说| 成人国产一区二区三区精品| 国产精品久99| 97国产一区二区| 一区二区三区中文在线观看| 欧美视频你懂的| 麻豆精品视频在线观看| 久久综合久久综合九色| 成人妖精视频yjsp地址| 亚洲人成网站精品片在线观看| 一本一道综合狠狠老| 日韩高清不卡一区二区三区| 欧美成人乱码一区二区三区| 国产黄色91视频| 亚洲欧洲日韩在线| 欧美日韩视频在线第一区| 久久精品国产免费看久久精品| 久久久久久99久久久精品网站| 不卡一区二区中文字幕| 亚洲成人av福利| 久久一二三国产| av资源站一区| 蜜桃久久久久久| 国产精品女主播在线观看| 欧美三级三级三级爽爽爽| 国内精品第一页| 亚洲黄色小说网站| 欧美精品一区二区三区在线| 色综合天天综合网天天狠天天| 日韩av中文在线观看| 欧美国产精品一区二区三区| 欧美在线观看一区二区| 国产一区二区中文字幕| 亚洲国产一区二区在线播放| 久久久综合网站| 欧美日韩久久一区| 99在线精品一区二区三区| 久久99国产精品免费网站| 亚洲美女少妇撒尿| 久久奇米777| 欧美精品黑人性xxxx| 91亚洲大成网污www| 精品综合免费视频观看| 亚洲午夜免费电影| 国产精品久久久久婷婷| 精品日韩欧美在线| 欧美色视频一区| 91丨九色丨蝌蚪丨老版| 国产精品1区二区.| 日韩国产精品91| 亚洲一区二区三区四区在线免费观看 | eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲丝袜自拍清纯另类| 久久伊99综合婷婷久久伊| 这里是久久伊人| 色天天综合色天天久久| 国产91丝袜在线观看| 精品一区二区三区免费播放| 日本最新不卡在线| 亚洲精品欧美激情| 中文字幕在线不卡| 欧美激情一区不卡| 久久精品一区二区三区不卡 | 欧美日韩一区二区在线观看| 99久久久久免费精品国产| 国产精品1区2区| 国产一区二区调教| 久久精品国产亚洲aⅴ| 免费观看30秒视频久久| 日韩精品1区2区3区| 五月天亚洲精品| 午夜在线成人av| 亚洲国产一区二区三区| 亚洲国产一区视频| 午夜精品久久久久久久| 日韩av在线发布| 男女激情视频一区| 久久99热狠狠色一区二区| 麻豆精品久久精品色综合| 狠狠狠色丁香婷婷综合激情| 国产在线视频一区二区三区| 国产剧情一区二区三区| 国产在线播放一区二区三区| 国产精品夜夜嗨| 国产不卡视频一区二区三区| 成人午夜伦理影院| 97精品久久久午夜一区二区三区| 色综合久久久网| 欧美日韩黄色一区二区| 欧美精品亚洲二区| 日韩欧美国产综合| 日本一区二区动态图| 亚洲少妇30p| 亚洲成人一区在线| 美国精品在线观看| 国产寡妇亲子伦一区二区| 成人av中文字幕| 欧日韩精品视频| 宅男噜噜噜66一区二区66| 精品入口麻豆88视频| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲啪啪综合av一区二区三区| 亚洲综合av网| 青青草国产成人av片免费| 国产九色精品成人porny | 91美女在线观看| 欧美日韩不卡一区二区| 久久久蜜桃精品| 自拍偷拍欧美精品| 日韩国产在线观看一区| 国产成人福利片| 欧美色区777第一页| 国产亚洲va综合人人澡精品| 一区二区三区在线观看网站| 久久精品国产成人一区二区三区 | 一区二区三区高清不卡| 精品一区二区精品| 色综合久久中文综合久久牛| 精品免费国产二区三区| 一区二区三区四区精品在线视频| 麻豆91精品91久久久的内涵| av成人免费在线| 欧美一区二区三区白人| 亚洲三级理论片| 国产精品资源站在线| 精品视频一区二区三区免费| 欧美激情在线观看视频免费| 蜜桃视频免费观看一区| 欧洲av一区二区嗯嗯嗯啊| 欧美韩国日本一区| 久久精品国产一区二区| 欧美三级中文字幕在线观看| 国产精品午夜春色av| 久久成人免费日本黄色| 在线精品视频小说1| 国产精品少妇自拍| 久久国产精品99久久人人澡| 欧美三级视频在线播放| 亚洲欧洲美洲综合色网| 国产精品一区不卡| 欧美大片一区二区| 亚洲福利电影网| 色综合色综合色综合 | 日韩美女视频一区二区 | 色综合久久九月婷婷色综合| 久久久国际精品| 免费在线观看日韩欧美| 欧美日韩1区2区| 亚洲精品日韩一| 91污片在线观看| 国产精品午夜在线| 国产精品一区二区黑丝 | 国产欧美日韩不卡| 激情综合网av| 精品三级在线看| 另类小说综合欧美亚洲| 欧美精品色综合| 亚洲成人动漫一区| 欧美日韩国产系列| 午夜精品在线看| 色哟哟精品一区| 亚洲一线二线三线久久久| 91视频在线观看| 亚洲免费伊人电影| 91麻豆国产在线观看| 亚洲女同一区二区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲精品成人天堂一二三| 97久久超碰国产精品| 亚洲精品视频免费看| 精品视频色一区| 日韩国产精品久久| 精品久久久三级丝袜| 国产一区亚洲一区| 日本一区免费视频| 不卡一区二区在线| 一区二区三区在线看| 538在线一区二区精品国产| 日韩国产欧美一区二区三区| 欧美一级搡bbbb搡bbbb| 久久99国内精品| 中文字幕第一区第二区| 99久久精品久久久久久清纯| 亚洲精品成人悠悠色影视| 欧美精品99久久久**| 麻豆久久久久久| 国产精品久久久久三级| 一本一本大道香蕉久在线精品 | 亚洲中国最大av网站| 91精品国产综合久久久蜜臀图片| 另类小说综合欧美亚洲| 国产精品久久久久影院老司| 欧美人妇做爰xxxⅹ性高电影| 美女视频黄免费的久久| 国产精品麻豆一区二区| 欧美日韩一区二区三区不卡|