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

📄 sys_rtc.c.svn-base

📁 lwip协议在arm7+uCos系统上的移植
💻 SVN-BASE
字号:
/****************************************************************************
		Copyright (c) 深圳市民德电子科技有限公司  http://www.szminde.cn

  文件名称:sys_RTC.c
  版本号:	1.0
  日期:	2005-05-25
  说明:	此文件包含对ES-TAD7100开发板上的RTC模块操作的函数。
  调用列表:--
  修改历史:--
****************************************************************************/

#include "44b.h"
#include "sys_RTC.h"

/*宏定义RTC的读写使能*/
#define	RTC_RW_EN()	rRTCCON =  1
#define	RTC_RW_DS()	rRTCCON &= 0xfe

char *date[8] = {"","SUN","MON","TUE","WED","THU","FRI","SAT"};


/****************************************************************************
  函数名称:RTCInit()
  说明:	RTC的初始化。
  调用函数:无
  输入参数:*time 一个时间结构体的指针
  输出参数:无
****************************************************************************/
void RTCInit(TIME_STRUC *time)
{
    RTC_RW_EN();				//RTC读写使能,选择BCD时钟、计数器,无复位,1/32768
    
    rBCDYEAR = time->year;;		//年
    rBCDMON  = time->month;		//月
    rBCDDAY  = time->day;		//日
    rBCDDATE = time->weekday;	//周日
    rBCDHOUR = time->hour;		//小时
    rBCDMIN  = time->min;		//分
    rBCDSEC  = time->sec;		//秒
    
    rTICINT = 0x80+127;			//使能RTC的中断, 中断时间设置为 (127+1)/128 second	
    
    RTC_RW_DS();	
}


/****************************************************************************
  函数名称:RTCSetDay()
  说明:	设置RTC的日期。
  调用函数:无
  输入参数:*time 一个时间结构体的指针
  输出参数:无
****************************************************************************/
void RTCSetDay(TIME_STRUC *time)
{
	RTC_RW_EN();			
		
	rBCDYEAR = time->year;
    rBCDMON  = time->month;
    rBCDDAY  = time->day;	
    
	RTC_RW_DS();
}


/****************************************************************************
  函数名称:RTCSetWeek()
  说明:	设置RTC的星期几。
  调用函数:无
  输入参数:*time 一个时间结构体的指针
  输出参数:无
****************************************************************************/
void RTCSetWeek(TIME_STRUC *time)
{
	RTC_RW_EN();
	
	rBCDDATE = time->weekday;
	
	RTC_RW_DS();
}


/****************************************************************************
  函数名称:RTCSetTime()
  说明:	设置RTC的时间。
  调用函数:无
  输入参数:*time 一个时间结构体的指针
  输出参数:无
****************************************************************************/
void RTCSetTime(TIME_STRUC *time)
{
	RTC_RW_EN();	
	
	rBCDHOUR = time->hour;
    rBCDMIN  = time->min;
    rBCDSEC  = time->sec;
    
	RTC_RW_DS();
}


/****************************************************************************
  函数名称:RTCAlarm()
  说明:	设置RTC的闹钟。
  调用函数:无
  输入参数:*time 一个时间结构体的指针
  输出参数:无
****************************************************************************/
void RTCAlarm(TIME_STRUC *time)  
{
	rALMYEAR = time->year;
	rALMMON  = time->month;
	rALMDAY  = time->day;
	rALMHOUR = time->hour;
	rALMMIN  = time->min;
	rALMSEC  = time->sec;

	rRTCALM = 0x7f;		//全局警报使能控制,年、月、日、星期、时分秒警报使能控制
}


/****************************************************************************
  函数名称:RTCGetTime()
  说明:	读取RTC的日期,星期几,时间。
  调用函数:无
  输入参数:*time 一个时间结构体的指针
  输出参数:无
****************************************************************************/
void RTCGetTime(TIME_STRUC *time)
{
	RTC_RW_EN();
	
	time->year=2000+rBCDYEAR;
	time->weekday=rBCDDATE;
	time->month=rBCDMON;
	time->day=rBCDDAY;
	time->hour=rBCDHOUR;
	time->min=rBCDMIN;
	time->sec=rBCDSEC;
	
	RTC_RW_DS();
}




⌨️ 快捷键说明

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