⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtc.c

📁 arm9.rar
💻 C
字号:
/****************************************************************************
【文  件  名  称】RTC.c
【功  能  描  述】三星S3C44B0X板 uC/OS-II 驱动程序代码----RTC
【程  序  版  本】1.0
【创建人及创建日期】icesoar//2003-12-19 10:57
【修改人及修改日期】icesoar//2003-12-19 10:57
****************************************************************************/

#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
#include "utils.h"

#include "os_cpu.h"
#include "rtc.h"

//------------------------------------------------------------------
// 函数名:STRU_SYS_TIME Get_Time(void)
// 输入  :Null
// 输出  :STRU_SYS_TIME Get_SysTime
// 功能描述:获得系统RTC时间值
// 全局变量:Null
//---------------------------------------------------------------
STRU_SYS_TIME Get_Time(void)
{
	STRU_SYS_TIME Get_SysTime;  //定义系统RTC结构体

	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;
	rRTCCON = 0x0;              //关闭RTC操作允许位	

	return(Get_SysTime);
}
//------------------------------------------------------------------
// 函数名:void Set_Time(STRU_SYS_TIME Set_SysTime)
// 输入  :STRU_SYS_TIME Set_SysTime
// 输出  :Null
// 功能描述:设置系统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;              //关闭RTC操作允许位	
}
//------------------------------------------------------------------
// 函数名:void Init_Time(void)
// 输入 : Null
// 输出 : Null
// 功能描述:检测当前RTC时间值是否合法,否则则以本工程编译时间进行初始化
// 全局变量: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
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -