亚洲欧美第一页_禁久久精品乱码_粉嫩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在线| 一区免费观看视频| 蜜桃视频一区二区三区在线观看| 丁香啪啪综合成人亚洲小说| 日韩一区二区在线看| 亚洲精品久久7777| 成人免费视频免费观看| 精品对白一区国产伦| 亚洲超丰满肉感bbw| 色综合久久精品| 国产欧美日韩另类一区| 蜜乳av一区二区| 欧美日本在线看| 亚洲在线观看免费视频| eeuss鲁一区二区三区| 欧美精品一区二区三区一线天视频 | 九九九精品视频| 欧美精品v国产精品v日韩精品| √…a在线天堂一区| 国产精品12区| 26uuu国产电影一区二区| 日韩专区欧美专区| 欧美日韩1234| 性做久久久久久免费观看| 欧美三级韩国三级日本一级| 亚洲色图视频网| 97久久人人超碰| 亚洲黄色免费网站| 色狠狠一区二区三区香蕉| 亚洲欧美日韩一区| 色诱视频网站一区| 亚洲午夜精品在线| 欧美日韩国产在线播放网站| 亚洲成人黄色影院| 欧美一区二区三区电影| 日本三级韩国三级欧美三级| 日韩一区二区三区观看| 激情小说欧美图片| 久久先锋影音av鲁色资源| 国产精品99久久久久久久vr| 国产女人水真多18毛片18精品视频| 极品少妇xxxx精品少妇| 午夜久久久久久久久| 91精品国产全国免费观看| 首页亚洲欧美制服丝腿| 欧美sm极限捆绑bd| 国产精品一区二区久久不卡| 国产精品欧美精品| 欧洲在线/亚洲| 青青草97国产精品免费观看无弹窗版 | 91精品福利在线一区二区三区 | 久久蜜桃一区二区| 欧美性视频一区二区三区| 日韩视频免费观看高清完整版| 午夜视频一区在线观看| 欧美精品在线视频| 国产在线视视频有精品| 亚洲欧洲国产专区| 欧美日韩一级片网站| 欧美高清视频www夜色资源网| 欧美va日韩va| 久久爱www久久做| 欧美久久久久中文字幕| 亚洲自拍偷拍图区| 91在线观看视频| 国产精品美女一区二区在线观看| 国产一区二区毛片| 欧美一区二区性放荡片| 亚洲一区二区三区四区五区黄| 国产高清不卡二三区| 26uuu色噜噜精品一区| 免费成人在线视频观看| 欧美日本一区二区| 日日夜夜精品视频天天综合网| 在线视频国内一区二区| 伊人夜夜躁av伊人久久| 日本高清无吗v一区| 亚洲欧洲综合另类在线| 色综合久久综合网97色综合 | 91视频国产观看| 中文字幕在线观看一区二区| 成人美女视频在线观看18| 国产欧美综合在线观看第十页| 国产精品一区二区久久精品爱涩 | 在线免费观看一区| 亚洲一区二区视频在线| 欧美日韩成人综合| 另类综合日韩欧美亚洲| 久久久久久久久久久久久久久99| 国模无码大尺度一区二区三区| 久久久99精品免费观看| 国产成人综合自拍| 亚洲图片激情小说| 欧美性感一区二区三区| 奇米888四色在线精品| 精品久久久久久久久久久久包黑料| 99久久精品国产一区二区三区| 一色桃子久久精品亚洲| 欧洲中文字幕精品| 麻豆一区二区在线| 国产三级欧美三级日产三级99| 成人a免费在线看| 亚洲国产欧美日韩另类综合 | 国产精品久久久久久久蜜臀 | 国产欧美日韩不卡| www..com久久爱| 亚洲高清免费一级二级三级| 精品国产凹凸成av人网站| 99久久精品情趣| 免费在线观看一区| 日韩一区中文字幕| 91精品国产一区二区| 成人综合在线观看| 日日摸夜夜添夜夜添精品视频| 久久亚洲综合色一区二区三区 | 亚洲成人先锋电影| 26uuu国产电影一区二区| 在线影院国内精品| 国产91精品精华液一区二区三区| 一区二区三区国产| 中文字幕免费一区| 欧美一级片在线| 在线观看视频一区二区欧美日韩| 久久国产夜色精品鲁鲁99| 亚洲丝袜精品丝袜在线| 欧美刺激午夜性久久久久久久| 成人在线综合网| 男女性色大片免费观看一区二区 | 欧美日韩午夜在线视频| 丁香五精品蜜臀久久久久99网站| 免费av成人在线| 亚洲妇女屁股眼交7| 国产精品日韩成人| 精品国产乱码久久久久久图片 | 免费观看日韩av| 香蕉成人啪国产精品视频综合网| 国产精品不卡在线观看| 久久只精品国产| 日韩欧美国产精品| 欧美剧情电影在线观看完整版免费励志电影| 国产伦精品一区二区三区免费| 午夜不卡av免费| 亚洲线精品一区二区三区八戒| 日韩理论片在线| 久久久综合激的五月天| 欧美成人乱码一区二区三区| 欧美日本国产一区| 欧美美女一区二区| 欧美日韩1234| 在线播放91灌醉迷j高跟美女| 欧美在线不卡一区| 在线观看日产精品| 欧美在线免费观看视频| 欧美日韩一区二区三区高清 | 日韩欧美国产一区二区三区| 亚洲另类在线视频| 国产精品高清亚洲| 国产精品久久国产精麻豆99网站| 国产亚洲成aⅴ人片在线观看| 久久久九九九九| 国产精品视频九色porn| 亚洲日本电影在线| 亚洲激情av在线| 亚洲动漫第一页| 午夜国产不卡在线观看视频| 天天操天天综合网| 久久成人麻豆午夜电影| 国产经典欧美精品| av中文字幕亚洲| 欧美日韩在线观看一区二区 | 久久久亚洲高清| 国产精品网站在线播放| 一区二区三区在线免费观看 | 国产区在线观看成人精品| 亚洲日本免费电影| 日韩成人精品在线观看| 国产一区二区三区蝌蚪| 91在线视频播放地址| 在线观看av一区| 欧美精品一区二区三区在线| 中文字幕成人av| 亚洲大片免费看| 国产永久精品大片wwwapp| 91视视频在线观看入口直接观看www | 亚洲自拍偷拍av| 蜜臀av一区二区三区| 懂色av一区二区夜夜嗨| 欧美视频一区在线观看| 久久久久久久久免费| 一区二区三区鲁丝不卡| 老司机午夜精品| 色婷婷久久综合| 精品国产在天天线2019| 1区2区3区精品视频| 麻豆国产一区二区| 91久久一区二区| 国产三级一区二区三区| 日韩精品乱码av一区二区| 成人午夜在线播放|