time.c

来自「一个使用ARM7控制16*32点阵LED的程序,主控芯片为2131」· C语言 代码 · 共 95 行

C
95
字号

/*
*******************************************************************************************************
** 功能   :运行RTC进行计时,将时间值返回
** 
** 说明   :
*******************************************************************************************************
*/
#include "config.h"

uint8  Time[15]={2,0,0,6,1,1,0.1,3,0,8,3,0,5,9};   //时间缓存区

/*
*******************************************************************************************************
** 函数名称 :SendTimeRtc()
** 函数功能 :读取RTC的时间值,暂时不返回时间值,待显示程序写好后返回时间值
** 入口参数 :无
** 出口参数 :无
*******************************************************************************************************
*/
void SendTimeRtc(void)
{
	uint32 datas;
	uint32 times;
	uint32 bak;

	
	times = CTIME0;			// 读取完整的时钟寄存器
	datas = CTIME1;
	
	bak = (datas >> 16) & 0xfff;	// 获取 年
	Time[0]=(bak / 1000);
	bak = bak % 1000;
	Time[1]=(bak / 100);
	bak = bak % 100;
	Time[2]=(bak / 10);
	Time[3]=(bak % 10);
	
	bak = (datas >> 8) & 0x0f;		// 获取 月
	Time[4]=(bak / 10);
	Time[5]=(bak % 10);
	
	bak = datas & 0x1f;				// 获取 日
	Time[6]=(bak / 10);
	Time[7]=(bak % 10);
	
	bak = (times >> 24) & 0x07;		// 获取 星期
	Time[8]=bak;
		
	bak = (times >> 16) & 0x1f;		// 获取 小时
	Time[9]=(bak / 10);
	Time[10]=(bak % 10);
		
	bak = (times >> 8) & 0x3f;		// 获取 分钟
	Time[11]=(bak / 10);
	Time[12]=(bak % 10);
		
	bak = times & 0x3f;				// 获取 秒钟
	Time[13]=(bak / 10);
	Time[14]=(bak % 10);
	
}

/*
*******************************************************************************************************
** 函数名称 :RTCInit()
** 函数功能 :初始化实时时钟
** 入口参数 :无
** 出口参数 :无
*******************************************************************************************************
*/
void RTCInit(void)
{
	PREINT = Fpclk / 32768 - 1;	// 设置基准时钟分频器
	PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
	
	CCR   = 0x00;	// 禁止时间计数器
	
	YEAR  = 2006;
	MONTH = 11;
	DOM   = 1;
	DOW   = 3;
	HOUR  = 8;
	MIN   = 30;
	SEC   = 59;
	
	CIIR = 0x01;	// 设置秒值的增量产生1次中断
	CCR  = 0x01;	// 启动RTC
}


/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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