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

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

?? clk.c

?? 常用外圍接口的程序設計
?? C
?? 第 1 頁 / 共 3 頁
字號:
*
* Description : This function converts a time-stamp to an ASCII string.
* Arguments   : n         is the desired format number:
*                            1 : "MM-DD-YY HH:MM:SS"         (needs at least 18 characters)
*                            2 : "YYYY-MM-DD HH:MM:SS"       (needs at least 20 characters)
*               ts        is the time-stamp value to format
*               s         is the destination ASCII string
* Returns     : none
* Notes       : - The time stamp is a 32 bit unsigned integer as follows:
*
*        Field: -------Year------ ---Month--- ------Day----- ----Hours----- ---Minutes--- --Seconds--
*        Bit# : 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
*
*               - The year is based from CLK_TS_BASE_YEAR.  That is, if bits 31..26 contain 0 it really 
*                 means that the year is really CLK_TS_BASE_YEAR.  If bits 31..26 contain 13, the year 
*                 is CLK_TS_BASE_YEAR + 13.
*********************************************************************************************************
*/

#if CLK_TS_EN && CLK_DATE_EN
void  ClkFormatTS (INT8U n, TS ts, char *s)
{
    INT16U yr;
    INT8U month;
    INT8U day;
    INT8U hr;
    INT8U min;
    INT8U sec;


    yr    = CLK_TS_BASE_YEAR + (ts >> 26);       /* Unpack time-stamp                                  */
    month = (ts >> 22) & 0x0F;
    day   = (ts >> 17) & 0x1F;
    hr    = (ts >> 12) & 0x1F;
    min   = (ts >>  6) & 0x3F;
    sec   = (ts & 0x3F);
    switch (n) {
        case  1:
              strcpy(s, "MM-DD-YY HH:MM:SS");    /* Create the template for the selected format        */
              yr    = yr % 100;
              s[ 0] = month / 10 + '0';          /* Convert DATE to ASCII                              */
              s[ 1] = month % 10 + '0';
              s[ 3] = day   / 10 + '0';
              s[ 4] = day   % 10 + '0';
              s[ 6] = yr    / 10 + '0';
              s[ 7] = yr    % 10 + '0';
              s[ 9] = hr    / 10 + '0';           /* Convert TIME to ASCII                             */
              s[10] = hr    % 10 + '0';
              s[12] = min   / 10 + '0';
              s[13] = min   % 10 + '0';
              s[15] = sec   / 10 + '0';
              s[16] = sec   % 10 + '0';
              break;

        case  2:
              strcpy(s, "YYYY-MM-DD HH:MM:SS");  /* Create the template for the selected format        */
              s[ 0] = yr    / 1000 + '0';        /* Convert DATE to ASCII                              */
              yr    = yr % 1000;
              s[ 1] = yr    /  100 + '0';
              yr    = yr %  100;
              s[ 2] = yr    /   10 + '0';
              s[ 3] = yr    %   10 + '0';
              s[ 5] = month / 10 + '0';          
              s[ 6] = month % 10 + '0';
              s[ 8] = day   / 10 + '0';
              s[ 9] = day   % 10 + '0';
              s[11] = hr    / 10 + '0';           /* Convert TIME to ASCII                             */
              s[12] = hr    % 10 + '0';
              s[14] = min   / 10 + '0';
              s[15] = min   % 10 + '0';
              s[17] = sec   / 10 + '0';
              s[18] = sec   % 10 + '0';
              break;

        default:
              strcpy(s, "?");
              break;
    }
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                             GET TIME-STAMP
*
* Description : This function is used to return a time-stamp to your application.  The format of the
*               time-stamp is shown below:
*
*        Field: -------Year------ ---Month--- ------Day----- ----Hours----- ---Minutes--- --Seconds--
*        Bit# : 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
*
* Arguments   : None.
* Returns     : None.
* Notes       : The year is based from CLK_TS_BASE_YEAR.  That is, if bits 31..26 contain 0 it really 
*               means that the year is CLK_TS_BASE_YEAR.  If bits 31..26 contain 13, the year is 
*               CLK_TS_BASE_YEAR + 13.
*********************************************************************************************************
*/

#if CLK_TS_EN && CLK_DATE_EN
TS  ClkGetTS (void)
{
    TS ts;


    OS_ENTER_CRITICAL();
    ts = ClkTS;
    OS_EXIT_CRITICAL();
    return (ts);
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                        TIME MODULE INITIALIZATION
*                                     TIME-OF-DAY CLOCK INITIALIZATION
*
* Description : This function initializes the time module.  The time of day clock task will be created
*               by this function.
* Arguments   : None
* Returns     : None.
*********************************************************************************************************
*/

void  ClkInit (void)
{
    ClkSem     = OSSemCreate(1);       /* Create time of day clock semaphore                           */
    ClkSemSec  = OSSemCreate(0);       /* Create counting semaphore to signal the occurrence of 1 sec. */
    ClkTickCtr =    0;
    ClkSec     =    0;
    ClkMin     =    0;
    ClkHr      =    0;
#if CLK_DATE_EN
    ClkDay     =    1;
    ClkMonth   =    1;
    ClkYear    = 1999;
#endif
#if CLK_TS_EN && CLK_DATE_EN
    ClkTS      = ClkMakeTS(ClkMonth, ClkDay, ClkYear, ClkHr, ClkMin, ClkSec);
#endif
    OSTaskCreate(ClkTask, (void *)0, &ClkTaskStk[CLK_TASK_STK_SIZE], CLK_TASK_PRIO);
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                     DETERMINE IF WE HAVE A LEAP YEAR
*
* Description : This function determines whether the 'year' passed as an argument is a leap year.
* Arguments   : year    is the year to check for leap year.
* Returns     : TRUE    if 'year' is a leap year.
*               FALSE   if 'year' is NOT a leap year.
*********************************************************************************************************
*/
#if CLK_DATE_EN
static  BOOLEAN  ClkIsLeapYear(INT16U year)
{
    if (!(year % 4) && (year % 100) || !(year % 400)) {
        return TRUE;
    } else {
        return (FALSE);
    }
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                           MAKE TIME-STAMP
*
* Description : This function maps a user specified date and time into a 32 bit variable called a
*               time-stamp.
* Arguments   : month     is the desired month   (1..12)
*               day       is the desired day     (1..31)
*               year      is the desired year    (CLK_TS_BASE_YEAR .. CLK_TS_BASE_YEAR+63)
*               hr        is the desired hour    (0..23)
*               min       is the desired minutes (0..59)
*               sec       is the desired seconds (0..59)
* Returns     : A time-stamp based on the arguments passed to the function.
* Notes       : - The time stamp is formatted as follows using a 32 bit unsigned integer:
*
*        Field: -------Year------ ---Month--- ------Day----- ----Hours----- ---Minutes--- --Seconds--
*        Bit# : 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
*
*               - The year is based from CLK_TS_BASE_YEAR.  That is, if bits 31..26 contain 0 it really 
*                 means that the year is really CLK_TS_BASE_YEAR.  If bits 31..26 contain 13, the year is 
*                 CLK_TS_BASE_YEAR + 13.
*********************************************************************************************************
*/

#if CLK_TS_EN && CLK_DATE_EN
TS  ClkMakeTS (INT8U month, INT8U day, INT16U yr, INT8U hr, INT8U min, INT8U sec)
{
    TS ts;


    yr -= CLK_TS_BASE_YEAR;
    ts  = ((INT32U)yr << 26) | ((INT32U)month << 22) | ((INT32U)day << 17);
    ts |= ((INT32U)hr << 12) | ((INT32U)min   <<  6) |  (INT32U)sec;
    return (ts);
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                            SET DATE ONLY
*
* Description : Set the date 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  (CLK_TS_BASE_YEAR .. CLK_TS_BASE_YEAR+63)
* Returns     : None.
* Notes       : It is assumed that you are specifying a correct date (i.e. there is no range checking
*               done by this function).
*********************************************************************************************************
*/

#if  CLK_DATE_EN
void  ClkSetDate (INT8U month, INT8U day, INT16U year)
{
    INT8U err;


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

/*$PAGE*/
/*
*********************************************************************************************************
*                                          SET DATE AND TIME
*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
六月婷婷色综合| 国产1区2区3区精品美女| 久久99精品一区二区三区三区| 成人在线视频首页| 91精品国产aⅴ一区二区| 综合久久久久久| 韩国中文字幕2020精品| 欧美日精品一区视频| 日本不卡中文字幕| 91精品办公室少妇高潮对白| 国产欧美一区二区三区在线看蜜臀 | 国产盗摄视频一区二区三区| 欧美中文字幕亚洲一区二区va在线| 久久综合五月天婷婷伊人| 日韩精品亚洲一区二区三区免费| 97精品国产露脸对白| 国产午夜精品久久久久久免费视| 免费一级欧美片在线观看| 欧美系列在线观看| 亚洲综合在线电影| 99久久伊人网影院| 日本一区二区视频在线观看| 麻豆成人免费电影| 欧美一区2区视频在线观看| 亚洲午夜成aⅴ人片| 色欧美乱欧美15图片| 国产精品二区一区二区aⅴ污介绍| 久久福利视频一区二区| 日韩欧美一区在线观看| 日韩**一区毛片| 69堂精品视频| 美腿丝袜亚洲一区| 91精品国产91综合久久蜜臀| 日韩av不卡在线观看| 91精品国产色综合久久久蜜香臀| 亚洲成a人片在线观看中文| 欧美日韩小视频| 三级久久三级久久| 日韩欧美在线影院| 精品无码三级在线观看视频| 久久综合精品国产一区二区三区 | 欧美一区二区三区人| 日本一区中文字幕| 精品免费日韩av| 国产麻豆午夜三级精品| 国产欧美1区2区3区| 99国产精品久久| 亚洲一级电影视频| 欧美一区二区三级| 韩日精品视频一区| 国产伦精一区二区三区| 国产日韩欧美不卡| 色嗨嗨av一区二区三区| 天使萌一区二区三区免费观看| 欧美疯狂做受xxxx富婆| 久久99国产精品免费| 国产精品乱码人人做人人爱| 日本高清不卡一区| 人人狠狠综合久久亚洲| 亚洲国产精品激情在线观看| 色综合久久天天综合网| 日韩精品福利网| 欧美国产丝袜视频| 欧美日韩电影在线播放| 国产一区二区三区四区五区入口| 中文字幕亚洲区| 欧美电影一区二区三区| 国产成都精品91一区二区三| 亚洲一区二三区| 久久蜜桃香蕉精品一区二区三区| 91欧美一区二区| 精品一区二区三区av| 亚洲精品国产一区二区精华液| 欧美一区二区三区小说| 91免费版pro下载短视频| 蜜桃av一区二区在线观看| 亚洲欧洲国产专区| 精品日韩av一区二区| 在线观看亚洲精品视频| 国产精品一区二区91| 图片区小说区区亚洲影院| 久久9热精品视频| 亚洲乱码一区二区三区在线观看| 日韩一卡二卡三卡四卡| 91在线观看美女| 国产精品一区二区三区99| 免费人成在线不卡| 一片黄亚洲嫩模| 国产精品网站在线观看| 日韩一级二级三级| 欧美在线免费播放| www.亚洲国产| 国产成人亚洲综合a∨猫咪| 秋霞影院一区二区| 一区二区日韩av| 综合久久给合久久狠狠狠97色| 亚洲精品在线一区二区| 欧美在线观看视频一区二区 | 在线观看免费成人| 成人午夜视频在线观看| 国产风韵犹存在线视精品| 男女性色大片免费观看一区二区| 亚洲精品免费电影| 最新日韩av在线| 亚洲欧洲性图库| 国产精品丝袜在线| 国产拍欧美日韩视频二区| 国产偷国产偷亚洲高清人白洁| 欧美成人a在线| 欧美大片在线观看| 欧美一区二区福利在线| 777xxx欧美| 6080日韩午夜伦伦午夜伦| 欧美日高清视频| 欧美精品久久一区二区三区| 91精品欧美一区二区三区综合在| 精品视频1区2区| 337p亚洲精品色噜噜| 欧美伦理视频网站| 日韩欧美中文字幕制服| 精品国产区一区| 国产亚洲精品bt天堂精选| 欧美国产一区二区在线观看| 国产精品动漫网站| 亚洲欧美日韩国产手机在线| 亚洲精品午夜久久久| 午夜一区二区三区在线观看| 日韩国产欧美在线观看| 久久国内精品视频| 国产福利一区在线| 99re8在线精品视频免费播放| 91麻豆国产在线观看| 欧美日韩国产免费一区二区 | 欧美日韩中文字幕精品| 欧美日韩激情一区| 日韩精品中文字幕在线不卡尤物| 久久亚洲捆绑美女| 中文字幕在线一区免费| 一区二区三区色| 美女脱光内衣内裤视频久久影院| 国产揄拍国内精品对白| 91视频国产观看| 欧美一区二区高清| 国产精品二区一区二区aⅴ污介绍| 尤物在线观看一区| 美女看a上一区| av中文一区二区三区| 欧美人与性动xxxx| 国产三区在线成人av| 亚洲久草在线视频| 捆绑紧缚一区二区三区视频| 粉嫩aⅴ一区二区三区四区| 欧洲日韩一区二区三区| 精品国产一二三| 亚洲自拍都市欧美小说| 国产一区二区三区综合| 欧美视频日韩视频| 国产欧美日韩综合精品一区二区| 亚洲在线观看免费| 国产成人免费视频一区| 欧美日韩国产在线播放网站| 国产精品视频在线看| 青娱乐精品视频| 91蝌蚪porny九色| 久久婷婷国产综合国色天香| 一区二区三区欧美在线观看| 激情欧美一区二区三区在线观看| 91亚洲资源网| 国产婷婷色一区二区三区| 性欧美疯狂xxxxbbbb| 91小视频免费观看| 久久精品一区二区三区av| 丝袜a∨在线一区二区三区不卡| 国产精品66部| 日韩区在线观看| 三级不卡在线观看| 欧美在线免费播放| √…a在线天堂一区| 国产精品18久久久久| 日韩一级二级三级| 日韩不卡一二三区| 欧美精品xxxxbbbb| 亚洲一二三四区| 97se亚洲国产综合自在线观| 国产精品入口麻豆九色| 国产一区免费电影| 精品精品国产高清a毛片牛牛| 天天综合色天天综合| 91久久精品一区二区三区| 亚洲乱码国产乱码精品精98午夜 | 欧美一区中文字幕| 亚洲精品国产成人久久av盗摄| youjizz久久| **网站欧美大片在线观看| 91在线观看免费视频| 亚洲精品国产高清久久伦理二区| 色婷婷亚洲综合| 一区二区三区日韩在线观看| 在线观看不卡一区| 亚洲影视在线播放|