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

📄 rtc.c

📁 王绍伟先生的单片机入门资料
💻 C
字号:
/*************************************************/

/****************实时时钟********************/

/*************2003年4月16日*********************/

/************WROTE BY WANGSW********************/
#include "reg52x2.h"
#include "define.h"

#include "rtc.h"


static RTCType eRTCType;

byte data g_RTCPool[4];

RTCMember g_RTCMember;





/******************************************************************************************
*函数名:		rtc_init
*参数:			hour		
				minute
				second
*返回值:		无
*描述:			实时软件时钟计数器初始化
*编写:			王绍伟
*版本信息:		V1.0			2003年8月15日
******************************************************************************************/
extern void rtc_soft_init(byte hour, byte minute, byte second)
{
	g_RTCMember.hour = hour;
	g_RTCMember.minute = minute;
	g_RTCMember.second = second;
	g_RTCPool[0] = g_DAA[g_RTCMember.second];
	g_RTCPool[1] = g_DAA[g_RTCMember.minute];
	g_RTCPool[2] = g_DAA[g_RTCMember.hour];
}


/******************************************************************************************
*函数名:		rtc_process
*参数:			无
*返回值:		无
*描述:			定义时钟从秒->分钟->小时的进位规则,并抛出已过一秒时
				钟的消息
*编写:			王绍伟
*版本信息:		V1.0			2003年8月15日
******************************************************************************************/
extern void rtc_soft_routine(void)
{
	if(++g_RTCMember.second > 59)
	{
		g_RTCMember.second = 0;
		g_RTCMember.minute++;
	}
	
	if(g_RTCMember.minute > 59)
	{
		g_RTCMember.minute = 0;
		g_RTCMember.hour++;
	}
	msg_queue_in(MSG_RTC, RTC_SECOND);
}


/******************************************************************************************
*函数名:		rtc_read
*参数:			无
*返回值:		g_RTC		时钟结构体
*描述:			读取当前时钟结构体内容
*编写:			王绍伟
*版本信息:		V1.0		2003年8月15日
******************************************************************************************/
extern RTCMember rtc_soft_read(void)
{
	return(g_RTCMember);
}



extern void rtc_soft_process(RTCType eRTCType)
{
	eRTCType = eRTCType;			/*以备今后用*/
	g_RTCPool[0] = g_DAA[g_RTCMember.second];
	g_RTCPool[1] = g_DAA[g_RTCMember.minute];
	g_RTCPool[2] = g_DAA[g_RTCMember.hour];
}

/**************************应用程序*********************************/



⌨️ 快捷键说明

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