5321|9

316

帖子

1

TA的资源

纯净的硅(中级)

楼主
 

有没有对430F5,RTC熟悉的朋友或有什么资料,共享一下!? [复制链接]

做个定时开关机,参考一下!谢谢!

最新回复

学习学习。顶一个。感谢分享的GUIDE  详情 回复 发表于 2014-4-18 10:36
 
点赞 关注

回复
举报

312

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

MSP430Ware,包含5xx,6xx系列的RTC代码

楼主可以看一下MSP430Ware软件库,里头有针对RTC的软件代码。
RTC驱动库在目录文件夹driverlib/5xx_6xx/rtc.c中, driverlib/5xx_6xx/rtc.h文件包括API函数定义的头文件。

实时时钟(RTC)
MSP430Ware RTC模块提供了一套关于RTC API的函数。这些函数可以校准时钟,在日历模式初始化RTC模块,使能RTC中断等。如果使用RTC_A 模块,计数器模式必须也要初始化。RTC模块在日历模式下能够实时追踪当前时间和日期,在RTC_A 下可以配置为32位计数器。
RTC模式产生多个中断,有2个中断在日历模式下使用。一个中断在计数器模式下用于计数溢出,另一个中断用于时钟分频。RTC驱动库在目录文件夹driverlib/5xx_6xx/rtc.c中, driverlib/5xx_6xx/rtc.h文件包括API函数定义的头文件。RTC API函数分成4组,包括时钟设置,日历模式,计数器模式和中断的使能与配置。
RTC时钟设置函数如下:RTC_startClock;RTC_holdClock;RTC_setCalibrationFrequency;RTC_setCalibrationData。
RTC日历模式初始化和配置函数如下:RTC_calenderInit;RTC_getCalenderTime;RTC_getPrescaleValue;RTC_setPrescaleValue。
RTC计数器模式(只有RTC_A具有)初始化和设置如下:RTC_counterInit;RTC_getCounterValue;RTC_setCounterValue;RTC_counterPrescaleInit;RTC_counterPrescaleHold;RTC_counterPrescaleStart;RTC_getPrescaleValue;RTC_setPrescaleValue。
RTC中断由如下函数设置:RTC_setCalenderAlarm;RTC_setCalenderEvent;RTC_definePrescaleEvent;RTC_enableInterrupt;
RTC_disableInterrupt;RTC_getInterruptStatus;RTC_clearInterrupt。
如下的API函数只有RTC_B具有:RTC_convertBCDToBinary;RTC_convertBinaryToBCD。
下面的代码显示如何初始化RTC,使用当前时间和变量配置RTC API为日历模式。
Calendar currentTime;
WDT_hold(__MSP430_BASEADDRESS_WDT_A);
P1DIR |= BIT0; // 设置P1.0为输出
// 初始化LFXT1
P7SEL |= 0x03; // 选择 XT1
UCSCTL6 &= ~(XT1OFF); // XT1 开启
UCSCTL6 |= XCAP_3; // 使用内部负载电容
// 循环直到 XT1,XT2 和 DCO 错误标志清零
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
// 清除 XT2,XT1,DCO 错误标志
// 清除 SFR 错误标志
SFR_clearInterrupt(__MSP430_BASEADDRESS_SFR,OFIFG);
// 测试晶振失效否?
}while (SFR_interruptStatus(__MSP430_BASEADDRESS_SFR__,OFIFG));
// 配置当前日历时间
currentTime.Seconds = 0x00;
currentTime.Minutes = 0x26;
currentTime.Hours = 0x13;
Real-Time Clock (RTC)
currentTime.DayOfWeek = 0x03;
currentTime.DayOfMonth = 0x20;
currentTime.Month = 0x07;
currentTime.Year = 0x2011;
// 初始化RTC日历模式
// 初始化使用BCD日历寄存器格式
RTC_calendarInit (__MSP430_BASEADDRESS_RTC,currentTime,RTC_FORMAT_BCD);
// 配置日历报警时间,每周第5天下午5点
RTC_setCalendarAlarm (__MSP430_BASEADDRESS_RTC,0x00,0x17,RTC_ALARM_OFF,0x05);
// 每秒产生一次中断
RTC_setCalendarEvent (__MSP430_BASEADDRESS_RTC,RTC_CALENDAREVENT_MINUTECHANGE);
// RTC准备状态中断使能,准备读日历寄存器,同时使能日历报警和日历事件。
RTC_enableInterrupt (__MSP430_BASEADDRESS_RTC,RTCRDYIE + RTCTEVIE + RTCAIE);
// 开启RTC时钟
RTC_startClock(__MSP430_BASEADDRESS_RTC__);
 
 

回复

312

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
MSP430Ware下载地址:
http://www.ti.com/tool/msp430ware
 
 
 

回复

316

帖子

1

TA的资源

纯净的硅(中级)

4
 

回复 沙发 hansonhe 的帖子

老兄!我用过了!但是奇怪的是,我把那个.s43的汇编文件加进去以后,编译没有文件,就是在download的时候会出问题,提示是:
Fatal error:Closing debug session
session aborated!
 
 
 

回复

312

帖子

0

TA的资源

纯净的硅(高级)

5
 
你是按照MSP430Ware手册中的说明操作的吗?

MSP430ware_Users_Guide-1_00_00_00.pdf

334.53 KB, 下载次数: 98

 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

6
 

楼主强大,

 
个人签名WO爱LAOWUPO
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

7
 

楼主是怎样校准时钟频率的有点小疑惑

:rose:

点评

同样的问题,我这里秒表过几分钟就会慢将近1S的样子  详情 回复 发表于 2014-2-14 15:20
 
个人签名WO爱LAOWUPO
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

8
 

用这段代码怎么读不出时间

在中断里怎么也读不出时间了,仿真调试看到时间在变。
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

9
 

同样的问题,我这里秒表过几分钟就会慢将近1S的样子
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

10
 
学习学习。顶一个。感谢分享的GUIDE
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表