arm9.rar

源代码在线查看: rtc.c

软件大小: 5914 K
上传用户: tiantianyuehui
关键词: arm
下载地址: 免注册下载 普通下载 VIP

相关代码

				/****************************************************************************
				【文  件  名  称】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
					}
				}
				
				
							

相关资源