📄 tsk_rtc.c
字号:
/*
* Copyright 2005 by SEED.
* All rights reserved. Property of SEED.
* Restricted rights to use, duplicate or disclose this code are
* granted through contract.
*
*/
/* August 2005 */
/********************************************************************/
/* TSK_rtc.c file */
/********************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <std.h>
#include <csl.h>
#include <log.h>
#include <tsk.h>
#include <csl_stdinc.h>
#include "..\include\seeddm642.h"
#include "..\include\seed_rtciic.h"
#include "..\SEEDVPM642cfg.h"
SEEDDM642_RTC_Config rtcCfg = {
0x2005,
0x0008,
0x0002,
(0x004 + RTC_X1226_24),/*采用24小时的模式*/
0x0017,
0x0059,
0x0003
};
Uint8 rtcregvalue = 0;
void rtc_delay(Uint32 delay)
{
Uint32 i = 0;
for(i = 0; i<delay;i++)
{
SEEDDM642_waitusec(10000);
}
}
void TSK_rtcrw()
{
#if defined _SET_TIME_
// RTC_write_enable(SEEDVPM642_I2C_hI2C);
/*PHz/IRQ设为32.768kHz的输出*/
// rtcregvalue =0x010;
// RTC_write( SEEDVPM642_I2C_hI2C,
// RTC_X1226_INT,
// &rtcregvalue);
/*设置当前的时间值*/
/*设置年*/
rtcregvalue = (rtcCfg.year & 0xff00)>>8;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_Y2K,
&rtcregvalue);
rtcregvalue = rtcCfg.year & 0x00ff;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_YR,
&rtcregvalue);
/*设置月*/
rtcregvalue = rtcCfg.month;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_MO,
&rtcregvalue);
/*设置日*/
rtcregvalue = rtcCfg.day;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_DT,
&rtcregvalue);
/*设置时*/
rtcregvalue = rtcCfg.hour;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_HR,
&rtcregvalue);
/*设置分*/
rtcregvalue = rtcCfg.minutes;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_MN,
&rtcregvalue);
/*设置秒*/
rtcregvalue = rtcCfg.seconds;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_SC,
&rtcregvalue);
/*设置星期*/
rtcregvalue = rtcCfg.week;
RTC_write( SEEDVPM642_I2C_hI2C,
RTC_X1226_DW,
&rtcregvalue);
#endif
/*读取当前的时间值*/
for(;;)
{
/*读年*/
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_Y2K,
&rtcregvalue);
rtcCfg.year = ( rtcregvalue & 0x00ff)<<8;
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_YR,
&rtcregvalue);
rtcCfg.year = rtcCfg.year + (rtcregvalue & 0x00ff);
/*读月*/
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_MO,
&rtcregvalue);
rtcCfg.month = rtcregvalue;
/*读日*/
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_DT,
&rtcregvalue);
rtcCfg.day = rtcregvalue;
/*读时*/
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_HR,
&rtcregvalue);
rtcCfg.hour = rtcregvalue - RTC_X1226_24;
/*读分*/
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_MN,
&rtcregvalue);
rtcCfg.minutes = rtcregvalue;
/*读秒*/
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_SC,
&rtcregvalue);
rtcCfg.seconds = rtcregvalue;
/*读星期*/
RTC_read( SEEDVPM642_I2C_hI2C,
RTC_X1226_DW,
&rtcregvalue);
rtcCfg.week = rtcregvalue;
printf("time is:%x年%x月%x日%x时%x分%x秒\n",rtcCfg.year,rtcCfg.month,
rtcCfg.day,rtcCfg.hour,rtcCfg.minutes,rtcCfg.seconds);
// LOG_printf(&trace,"time is:%x年%x月",rtcCfg.year,rtcCfg.month,
// "%x日%x时",rtcCfg.day,rtcCfg.hour);
// LOG_printf(&trace,"%x分%x秒",
// rtcCfg.minutes,rtcCfg.seconds);
/*延时1秒钟*/
rtc_delay(80);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -