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

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

?? main.c

?? 基于UCOS的萬年歷
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
*********************************************************************************************************
			 XX電子實業有限公司技術部
		      版權所有(c)2006.12.16--2006.12.18
			    http://www.XX.cn

********************************************************************************************************
文件  名:main.C
創建  人:許 文
創建日期:2008.05.29
版    本:萬年歷V01
描   述:
========================================================================================================
修改  人:
修改時間:
版    本:
描   述:
*********************************************************************************************************
*/

#include "config.h"

#define     BUZZER                  1 << 7               // P0.7控制蜂鳴器,低電平蜂鳴
#define     BUZZER_Set()            PINSEL0 &= (~(INT32U)(1 << 7)), IO0DIR|=(1<<7),IO0CLR|=(1<<7)  // 開蜂鳴器
#define     BUZZER_Clr()            IO0SET|=(1<<7) 

#define TASKKEY_STACK_SIZE    256     		                            /*  TaskKey定義用戶堆棧長度      */

#define TASKDISP_STACK_SIZE   128     		                            /*  TaskDisp定義用戶堆棧長度     */   

#define TASKSET_STACK_SIZE    128     		                            /*  TaskSet定義用戶堆棧長度      */ 

static OS_EVENT  		*KeyBox; 
static OS_EVENT  		*RtcBox; 

OS_STK  TASKKEY_STACK[TASKKEY_STACK_SIZE];
OS_STK  TASKDISP_STACK[TASKDISP_STACK_SIZE];
OS_STK  TASKSET_STACK[TASKSET_STACK_SIZE];

#define     KEY1    1 << 16                                             /*  P0.16為KEY1輸入腳             */
#define     KEY2    1 << 17						/*  P0.17為KEY2輸入腳             */
#define     KEY3    1 << 18						/*  P0.18為KEY3輸入腳             */
#define     KEY4    1 << 19						/*  P0.19為KEY3輸入腳             */
uint8 const SHOWTABLE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void TaskKey(void *pdata);
void TaskDisp(void *pdata);
void TaskSet(void *pdata);

/*
*********************************************************************************************************
* Function name:      rtcException
* Descriptions:       RTC的中斷服務函數
* Input parameters:   無
* Output parameters:  無			    
*********************************************************************************************************
*/
void rtcException(void)
{
    static INT32U time[2];
    ILR |= 0x01;							/*  清除RTC增量中斷標志          */
    time[0] = CTIME0; 
    time[1] = CTIME1;
    OSMboxPost(RtcBox,(void*)time);
    VICVectAddr = 0;                                 	                /*  通知中斷控制器中斷結束       */

}

/*
*********************************************************************************************************
* Function name:     gpioInit
* Descriptions:      GPIO的初始化
* Input parameters:  無
* Output:            無 
*********************************************************************************************************
*/
void gpioInit(void)
{
     PINSEL0 &= (~(uint32)(1 << 7));
     IO0DIR|=(1<<7);
     IO0SET|=(1<<7);
}

/*
*******************************************************************************************************
* Function name:     rtcInit
* Descriptions:      按照默認值初始化實時時鐘.RTC被初始化為時鐘源選擇Fpclk,秒值增加一次后產生中斷.
* Input parameters:  time:初始化時間指針
* Output:            無
*******************************************************************************************************
*/
void rtcInit(uint16 *time)
{
    PREINT = Fpclk / 32768 - 1;	// 設置基準時鐘分頻器
    PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
	
    CCR   = 0x00;	// 禁止時間計數器
	
    YEAR 	= time[0];							                        /*  初始化時間寄存器             */
    MONTH	= time[1];
    DOM 	= time[2];
    DOW 	= time[3];
    HOUR	= time[4];
    MIN 	= time[5];
    SEC		= time[6];
    
    CIIR = 0x01;				    // 設置秒值的增量產生一次中斷
    ILR = 0x03;						// 清除RTC增量和報警中斷標志
    CCR = 0x01;				        // 啟動RTC
}


/*********************************************************************************************************
** Function name:     keyIn
** Descriptions:      查詢按鍵的輸入
** Input parameters:  無
** Returned value:    有效鍵按下時,返回對應的鍵值,否則返回0;			    
********************************************************************************************************/
INT32U keyIn(void)
{ 
    INT32U i,uiKey;
    uiKey = KEY1;
    for (i=1;i<5;i++) {
        if ((uiKey&IO0PIN) == 0) {
            break;
        } else {
            uiKey<<=1;
        }
    }
	
    if (i >=5 ) {
    uiKey = 0;
    }
    return uiKey;
}

/*******************************************************************************************
** Function name:      timeDisp
** Descriptions:       將RTC的數據發送到PC機上顯示
** Input parameters:   uiTimes  RTC的CTIME0的值
                       uiDates  RTC的CTIME1的值
** Output parameters:  無 
*******************************************************************************************/
void timeDisp(INT32U uiTimes,INT32U uiDates)
{   
    INT32U uiTimedata;
   
    uiTimedata = (uiDates >> 16) & 0xfff;	                            /*  發送年                       */
    pcDispChar(0, SHOWTABLE[uiTimedata / 1000]);
    uiTimedata = uiTimedata % 1000;
    pcDispChar(1, SHOWTABLE[uiTimedata / 100]);
    uiTimedata = uiTimedata % 100;
    pcDispChar(2, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(3, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = (uiDates >> 8) & 0x0f;		                            /*  發送月                       */
    pcDispChar(4, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(5, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = uiDates & 0x1f;				                        /*  發送日                       */
    pcDispChar(6, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(7, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = (uiTimes >> 24) & 0x07;		                        /*  發送星期                     */
    pcDispChar(8, SHOWTABLE[uiTimedata]);
		
    uiTimedata = (uiTimes >> 16) & 0x1f;		                        /*  發送小時                     */
    pcDispChar(9, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(10, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = (uiTimes >> 8) & 0x3f;		                            /*  發送分鐘                     */
    pcDispChar(11, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(12, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = uiTimes & 0x3f;				                        /*  發送秒鐘                     */
    pcDispChar(13, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(14, SHOWTABLE[uiTimedata % 10]);
}

/*******************************************************************************************
** Function name:      timeGet
** Descriptions:       根據輸入的編號,獲得對應編號的數據位的值。
** Input parameters:  n  PC的萬年歷窗口中時間數據位對應的編號。
** Output parameters: 無
** Returned value:     輸入編號對應的時間數據位的值
*******************************************************************************************/
INT32U timeGet(INT32U n)
{	
    INT32U uiTimedata,uiTimes,uiDates;
    uiTimes = (INT32U)CTIME0;					                        /*  讀取完整的時鐘寄存器         */
    uiDates = (INT32U)CTIME1;
    switch(n) {
    case 0:
        uiTimedata = (uiDates >> 16) & 0xfff;	                        /*  獲取年的千位數據             */
        uiTimedata = uiTimedata / 1000;
        break;
    case 1:
        uiTimedata = (uiDates >> 16) & 0xfff;	                        /*  獲取年的百位數據             */
        uiTimedata = uiTimedata % 1000;
        uiTimedata = uiTimedata / 100;
        break;
    case 2:                                                             /*  獲取年的十位數據             */
        uiTimedata = (uiDates >> 16) & 0xfff;
        uiTimedata = uiTimedata % 100;
        uiTimedata = uiTimedata / 10;
        break;
    case 3:                                                             /*  獲取年的個位數據             */
        uiTimedata = (uiDates >> 16) & 0xfff;
        uiTimedata = uiTimedata % 10;
        break;
	case 4:
        uiTimedata = (uiDates >> 8) & 0x0f;		                        /*  獲取月的十位數據             */ 
        uiTimedata = uiTimedata / 10;
        break;
	case 5:
        uiTimedata = (uiDates >> 8) & 0x0f;		                        /*  獲取月的個位數據             */
        uiTimedata = uiTimedata % 10;
        break;
    case 6:
        uiTimedata = uiDates & 0x1f;				                    /*  獲取日的十位數據             */
        uiTimedata = uiTimedata / 10;
        break;
    case 7:
        uiTimedata = uiDates & 0x1f;				                    /*  獲取日的個位數據             */
        uiTimedata = uiTimedata % 10;
        break;
    case 8:
        uiTimedata = (uiTimes >> 24) & 0x07;		                    /*  獲取星期數                   */
        break;
    case 9:
        uiTimedata = (uiTimes >> 16) & 0x1f;		                    /*  獲取小時的十位數據           */
        uiTimedata = uiTimedata / 10;
        break;
    case 10:
        uiTimedata = (uiTimes >> 16) & 0x1f;		                    /*  獲取小時的個位數據           */  
        uiTimedata = uiTimedata % 10;
        break;
    case 11:
        uiTimedata = (uiTimes >> 8) & 0x3f;		                        /*  獲取分鐘的十位數據           */
        uiTimedata = uiTimedata / 10;
        break;
    case 12:
        uiTimedata = (uiTimes >> 8) & 0x3f;		                        /*  獲取分鐘的個位數據           */
        uiTimedata = uiTimedata % 10;
        break;
    case 13:
        uiTimedata = uiTimes & 0x3f;				                    /*  獲取秒鐘的十位數據           */
        uiTimedata = uiTimedata / 10;
        break;
    case 14:
        uiTimedata = uiTimes & 0x3f;				                    /*  獲取秒鐘的個位數據           */
        uiTimedata = uiTimedata % 10;
        break;
    }
    return uiTimedata;
}

/*******************************************************************************************
** Function name:      timeSet
** Descriptions:       根據輸入的編號,設置對應編號的時間數據位的值。
** Input parameters:  n  PC的萬年歷窗口中時間數據位對應的編號。
                       uiTimedata  對應的數據位變化的值,如:+1,-1 
** Output parameters: 無
** Returned value:     無
*******************************************************************************************/
void timeSet(INT32U n,INT32S uiTimedata)
{
    switch(n) {
    case 0:                                                             /*  設置年的千位數據             */
        YEAR += (INT32S)(uiTimedata*1000);
        break;
    case 1:
        YEAR += (INT32S)(uiTimedata*100);
        break;
    case 2:
        YEAR += (INT32S)(uiTimedata*10);
        break;
    case 3:
        YEAR += uiTimedata;
        break;
    case 4:
        MONTH += (INT32S)(uiTimedata*10);		                        /*  設置月                      */  
        break;
    case 5:
        if ((MONTH == 12) && (uiTimedata == 1)) {
            MONTH = 1;
        } else if ((MONTH ==1) && (uiTimedata ==-1)) {
            MONTH = 12;
        } else {
            MONTH += uiTimedata;		                                        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美国产高清| 亚洲不卡av一区二区三区| 国产欧美一区二区精品性| 欧美乱妇23p| 欧美一区二区三区啪啪| 亚洲精品在线网站| 亚洲免费观看在线视频| 国产精品天美传媒沈樵| 亚洲欧美色一区| 男女男精品视频| caoporm超碰国产精品| 欧美日韩免费一区二区三区| 欧美色中文字幕| 久久久久久久久久美女| 亚洲精品高清在线| 国产一区二区在线影院| 91猫先生在线| 欧美精品 国产精品| 欧美激情一区二区三区蜜桃视频| 亚洲精品网站在线观看| 韩国精品一区二区| 欧美日韩国产a| 不卡电影一区二区三区| 成人黄色在线视频| 久久在线免费观看| 精品一区二区三区视频在线观看| 欧美性大战久久| 亚洲精品久久7777| 色综合中文字幕| 亚洲精品ww久久久久久p站| www.在线成人| 亚洲精品福利视频网站| 在线欧美小视频| 亚洲综合丁香婷婷六月香| 91丨porny丨蝌蚪视频| 国产精品九色蝌蚪自拍| 99riav久久精品riav| 亚洲欧美影音先锋| 91蜜桃免费观看视频| 亚洲人成影院在线观看| 在线观看欧美黄色| 午夜婷婷国产麻豆精品| 欧美一级二级在线观看| 久久精品国产精品亚洲综合| 久久综合网色—综合色88| 国产综合一区二区| 国产精品日日摸夜夜摸av| 99精品在线观看视频| 一级精品视频在线观看宜春院| 色欧美乱欧美15图片| 亚洲国产精品久久艾草纯爱| 欧美男生操女生| 精品一区二区三区欧美| 亚洲国产精品t66y| 色狠狠综合天天综合综合| 亚洲成av人影院| 日韩欧美国产三级| 粉嫩一区二区三区性色av| 亚洲视频每日更新| 91精品一区二区三区久久久久久| 麻豆精品在线看| 中文字幕av在线一区二区三区| 99久久精品免费| 天天亚洲美女在线视频| 国产色婷婷亚洲99精品小说| 91美女视频网站| 青青国产91久久久久久 | 欧美va亚洲va| 国产久卡久卡久卡久卡视频精品| 国产精品美女一区二区三区 | 激情欧美日韩一区二区| 欧美国产精品久久| 欧美裸体bbwbbwbbw| 国产二区国产一区在线观看| 亚洲与欧洲av电影| 国产欧美一区二区精品秋霞影院| 一本久道久久综合中文字幕| 久久国产日韩欧美精品| 亚洲精品欧美激情| 久久众筹精品私拍模特| 欧美在线观看视频一区二区| 精品一区二区三区免费播放| 亚洲蜜臀av乱码久久精品| 日韩精品一区二区三区蜜臀 | 国产一区二区看久久| 亚洲国产一区二区三区| 国产精品麻豆久久久| 3751色影院一区二区三区| eeuss鲁片一区二区三区| 精品一区二区三区免费播放| 亚洲va欧美va国产va天堂影院| 国产亲近乱来精品视频| 日韩欧美视频在线 | 成年人国产精品| 九九久久精品视频| 婷婷六月综合网| 中文字幕亚洲视频| 久久久午夜精品理论片中文字幕| 欧美性极品少妇| av一本久道久久综合久久鬼色| 蜜桃久久精品一区二区| 亚洲一区二区三区三| 亚洲欧美日韩国产综合在线| 久久久国际精品| 日韩免费高清视频| 制服丝袜亚洲色图| 欧美三区在线观看| 在线亚洲高清视频| 波多野结衣的一区二区三区| 国产成人在线网站| 丁香五精品蜜臀久久久久99网站| 精品无人码麻豆乱码1区2区 | 亚洲综合久久久| 亚洲日本一区二区| 亚洲日本在线看| 亚洲欧美一区二区三区久本道91| 中文久久乱码一区二区| 国产欧美日韩不卡免费| 欧美国产视频在线| 国产精品国产三级国产aⅴ原创| 久久精品在线观看| 欧美激情一区二区三区不卡| 国产蜜臀av在线一区二区三区| 日本一区二区三区国色天香| 国产欧美日韩三级| 中文字幕中文字幕在线一区| 日韩伦理电影网| 亚洲精品ww久久久久久p站| 一区二区三区欧美视频| 亚洲一区二区三区四区在线免费观看| 亚洲专区一二三| 蜜臀久久久久久久| 国产福利精品一区二区| www.亚洲国产| 欧美三级韩国三级日本一级| 欧美喷水一区二区| 日韩久久免费av| 中文字幕欧美区| 尤物在线观看一区| 视频一区中文字幕| 精品在线播放免费| 成人动漫一区二区| 欧美日韩美少妇| 久久蜜桃av一区二区天堂| 中文无字幕一区二区三区| 亚洲啪啪综合av一区二区三区| 亚洲综合免费观看高清完整版在线| 天天色天天爱天天射综合| 国产精品自在在线| 欧美视频中文字幕| 精品福利av导航| 亚洲另类中文字| 久久国产精品无码网站| 成人黄色一级视频| 欧美一级日韩一级| 中文字幕一区在线观看视频| 性做久久久久久久免费看| 精品一区二区三区免费观看| 99re在线精品| 日韩一区二区三区四区五区六区| 国产免费久久精品| 日韩高清中文字幕一区| 成人精品亚洲人成在线| 欧美日本一区二区三区| 国产精品嫩草影院com| 婷婷开心久久网| 91论坛在线播放| 精品对白一区国产伦| 亚洲妇熟xx妇色黄| 不卡的看片网站| 久久综合狠狠综合久久激情| 亚洲国产成人高清精品| 成人久久18免费网站麻豆| 日韩欧美亚洲一区二区| 亚洲第一主播视频| gogogo免费视频观看亚洲一| 精品免费国产一区二区三区四区| 夜夜嗨av一区二区三区网页| 国产高清亚洲一区| 日韩一级免费一区| 一区二区三区精品| 99精品欧美一区二区蜜桃免费| 日韩欧美在线网站| 日韩精品一二三四| 在线观看三级视频欧美| 国产精品视频免费| 国产一区二区三区久久久| 日韩三级在线免费观看| 亚洲h在线观看| 91黄色小视频| 一区二区三区中文字幕电影| 成人app在线观看| 国产精品久久久久久久蜜臀| 国产在线播放一区三区四| 日韩欧美卡一卡二| 人禽交欧美网站| 日韩午夜精品视频| 日本特黄久久久高潮| 欧美一级高清片在线观看| 蜜臂av日日欢夜夜爽一区|