?? rtc.c
字號:
/****************************************************************************
【文 件 名 稱】RTC.c
【功 能 描 述】三星S3C44B0X板 uC/OS-II 驅(qū)動程序代碼----RTC
【程 序 版 本】1.0
【創(chuàng)建人及創(chuàng)建日期】藍(lán)海微芯//2003-12-19 10:57
【修改人及修改日期】藍(lán)海微芯//2003-12-19 10:57
****************************************************************************/
#include "44b.h"
#include "os_cpu.h"
#include "rtc.h"
//------------------------------------------------------------------
// 函數(shù)名:STRU_SYS_TIME Get_Time(void)
// 輸入 :Null
// 輸出 :STRU_SYS_TIME Get_SysTime
// 功能描述:獲得系統(tǒng)RTC時間值
// 全局變量:Null
//---------------------------------------------------------------
STRU_SYS_TIME Get_Time(void)
{
STRU_SYS_TIME Get_SysTime; //定義系統(tǒng)RTC結(jié)構(gòu)體
rRTCCON=0x1; //打開RTC操作允許位
Get_SysTime.ucYear = rBCDYEAR;
Get_SysTime.ucMonth = rBCDMON;
Get_SysTime.ucDay = rBCDDAY;
Get_SysTime.ucHour = rBCDHOUR;
Get_SysTime.ucMinute= rBCDMIN;
Get_SysTime.ucSecond= rBCDSEC;
rBCDSEC = 0x11;
rBCDMIN = 0x25;
rBCDHOUR= 0x23;
rBCDDAY = 0x04;
rBCDMON = 0x04;
rBCDYEAR= 0x07;
rRTCCON = 0x0; //關(guān)閉RTC操作允許位
return(Get_SysTime);
}
//------------------------------------------------------------------
// 函數(shù)名:void Set_Time(STRU_SYS_TIME Set_SysTime)
// 輸入 :STRU_SYS_TIME Set_SysTime
// 輸出 :Null
// 功能描述:設(shè)置系統(tǒng)RTC時間
// 全局變量:Null
//---------------------------------------------------------------
void Set_Time(STRU_SYS_TIME Set_SysTime) //Set System Time
{
rRTCCON = 0x1; //打開RTC操作允許位
rBCDYEAR=Set_SysTime.ucYear;
rBCDMON =Set_SysTime.ucMonth;
rBCDDAY =Set_SysTime.ucDay;
rBCDHOUR=Set_SysTime.ucHour;
rBCDMIN =Set_SysTime.ucMinute;
rBCDSEC =Set_SysTime.ucSecond;
rRTCCON = 0x0; //關(guān)閉RTC操作允許位
}
//------------------------------------------------------------------
// 函數(shù)名:void Init_Time(void)
// 輸入 : Null
// 輸出 : Null
// 功能描述:檢測當(dāng)前RTC時間值是否合法,否則則以本工程編譯時間進(jìn)行初始化
// 全局變量:Null
//------------------------------------------------------------------
void Init_Time(void)
{
STRU_SYS_TIME c_SysTime;
c_SysTime=Get_Time();
if(
(c_SysTime.ucYear>Valid_Year) ||(c_SysTime.ucMonth>Valid_Month) ||
(c_SysTime.ucDay>Valid_Day) ||(c_SysTime.ucHour>Valid_Hour) ||
(c_SysTime.ucMinute>Valid_Minute)||(c_SysTime.ucSecond>Valid_Second))
{
c_SysTime.ucYear =Build_Year;
c_SysTime.ucMonth =Build_Month;
c_SysTime.ucDay =Build_Day;
c_SysTime.ucHour =Build_Hour;
c_SysTime.ucMinute=Build_Minute;
c_SysTime.ucSecond=Build_Second;
Set_Time(c_SysTime); //set the valid time
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -