查看: 707|回复: 0
打印 上一主题 下一主题

Msp430-EXPF5529系列四(RTC时钟)

[复制链接] qrcode

30

主题

36

帖子

108

积分

注册会员

Rank: 2

积分
108
楼主
跳转到指定楼层
发表于 2016-2-23 08:53 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

F5529单片机实时时钟模块提供了具有日历模式、灵活可编程闹钟和校准的时钟计数器功能,其具有以下特征:

◆可配置成实时时钟模式或一般目的的计数器;

◆在日历模式下提供了秒、分钟、小时、星期、日期、月份和年份;

◆具有中断功能;

◆实时时钟模式里可选择BCD码或二进制格式;

◆实时时钟模式里具有可编程闹钟;

◆实时时钟模式里具有时间偏差的逻辑校正。

初始化时钟

RTCMODE:选择为日历模式,RTCBCD:日历模式,必须要设置为BCD格式

RTCHOLD:暂停日历,防止去读,RTCTEV_1:改变日期与时间

void SetupRTC(void)
{

RTCCTL01 = RTCMODE + RTCBCD + RTCHOLD + RTCTEV_1;
//设置时间,2016:02:19:04:30:00
    RTCHOUR = 0x04;
    RTCMIN = 0x30;
    RTCSEC = 0x00;
    RTCDAY = 0x19;
    RTCMON = 0x02;
    RTCYEAR = 0x2016;
	//打开日历
    RTCCTL01 &= ~RTCHOLD;

   // RTCPS1CTL = RT1IP_5;                    // Interrupt freq: 2Hz
    //RTCPS0CTL = RT0IP_7;                    // Interrupt freq: 128hz
	//使能读日历中断
    RTCCTL0 |= RTCRDYIE + RTCTEVIE;         // Enable interrupt  
}
void DisplayDigitalClock(void) {

	hourBCD = RTCHOUR;
	minuteBCD = RTCMIN;
	secondBCD = RTCSEC; //读取RTC时间寄存器

	DigitalClockDraw(); //显示当前数字时间
	//将当前的时候设置为旧的时间 
	hourOldBCD = hourBCD;
	minuteOldBCD = minuteBCD;
	secondOldBCD = secondBCD;

}
// 在第四行,第五行显示时间与日期
void DigitalClockDraw(void) {
	DigitalClockUpdate();
	Dogs102x6_stringDraw(4, 40, time, DOGS102x6_DRAW_NORMAL);
	Dogs102x6_stringDraw(5, 40, date, DOGS102x6_DRAW_NORMAL);

}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表