易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
S3C2440 RTC 实时时钟(miniARM 2440 )
rtc.h
[cpp]
#ifndef RTC_H
#define RTC_H
#include "2440addr.h"
//实时时钟 数据 均为BCD编码
typedef
struct
tag_RtcTime
{
//year 默认从0x2000开始,如果要设置为2010年
// year 应赋值为0x10;
U16 year;
char
month;
char
day;
char
week;
char
hour;
char
minite;
char
second;
}RTC_TIME;
void
RtcSetTime(RTC_TIME rt);
RTC_TIME RtcReadTime(
void
);
#endif
rtc.c
[c-sharp]
#include "rtc.h"
void
RtcSetTime(RTC_TIME rt)
{
rRTCCON = 0x01;
//使能写
rBCDYEAR = rt.year;
rBCDMON = rt.month;
rBCDDATE = rt.week;
rBCDDAY = rt.day;
rBCDHOUR = rt.hour;
rBCDSEC = rt.second;
rBCDMIN = rt.minite;
rRTCCON &=~0x01;
}
RTC_TIME RtcReadTime(
void
)
{
RTC_TIME rt;
//..............
return
rt;
}
测试程序 main.c
[cpp]
#include "uart.h"
#include "rtc.h"
void
delay(U32 tt)
{
U32 i;
for
(;tt>0;tt--)
{
for
(i=0;i<10000;i++){}
}
}
int
Main(
void
)
{
//char buffer[50]={0};
RTC_TIME rt;
rt.year=0x10;
rt.month=0x01;
rt.day=0x05;
rt.week=0x02;
rt.hour=0x22;
rt.second=0x00;
rt.minite=0x01;
RtcSetTime(rt);
UartInit(9600);
//rRTCCON = 0x01; //使能写
while
(1)
{
UartSendStr(
"RTC Test/r/n"
);
//sprintf(buffer,"%04x-%02x-%02x-%02x-%02x-%02x/r/n",
// rBCDYEAR+0x2000,rBCDMON,rBCDDAY,rBCDHOUR,rBCDMIN,rBCDSEC);
// UartSendStr(buffer);
// UartPrintf("%x/r/n",255);
UartPrintf(
"%04x-%02x-%02x/r/n"
,rBCDYEAR+0x2000,rBCDMON,rBCDDAY);
delay(2000);
}
return
0;
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图