0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MSP430F5438 RTC操作实验详解

2oON_changxuemc 来源:未知 作者:李倩 2018-06-21 10:29 次阅读

1.模块原理

如图 ,RTC 由两个分频寄存器 RP0TS,RP1TS 对 RTOSSEL 选择的时钟源进行分频,在日历模式下,时钟源 ACLK=32768,经过 RP0TS,RP1TS 分别 256 和 128 分频率后频率为 1HZ ,提供给 32 位 RTC 寄存器时钟源,通过 RTCSSEL 选择 11 或者 10。每 1S ,RTCSEC(秒)加一秒,加到 60,秒从 0 开始计数,RTCMIN 加 1,RTCHOUR,RTCMON ,RTCYEAR ,RTCDOW(星期),RTCDAY等 依次这样。并且在日历模式下,RTC 可以设置为 BCD 码显示在存储器中。另外 RTC 提供闹钟功能,我们可以设置 Alarm 寄存器的 RTCAMIN ,RTCAHOUR,RTCADAY,RTCADOW(星期).另外 RTC 模块也可以作为 32 位计数器使用,其原理方法和 WDT,TA 一致。

2,RTC 内部框图

3,寄存器配置

在 F5XX 单片机硬件 RTC 可以工作在计数器模式也可以工作在日历模式,通过配置寄存器 RTCCTL01 的 RTCMODE 位来实现对工作模式的选择,当选择工作在日历模式的时候,RT0PS 时钟源自动选择 ACLK,TP0PS 分频系数自动为/256,RT1PS 时钟源来自 RT0PS 输出,RT1PS 分频系数自动配置为/128,因此配置 ACLK 时钟为 32768HZ。

闹钟可以配置分钟,小时,星期,以分钟为例子时间设置完毕后,比如 08:23 分钟设置完毕后,将最高位为 AE 设置为 1,就会闹钟有效果,每个小时的第 23 分钟闹钟响。

影响整个 RTC 模块的时间的误差和时钟关系很大,本硬件 RTC 对时钟可以进行校正,如寄存器。

RTCCALS 为 1,加计算,每个 LSB 加 4PPM,如果为 0,减计算,每 LSB 减 2。

RTCCTL3 寄存器中 RTCCALF 配置选择输出 512HZ,256HZ,1HZ 其中一个频率,然后将 RTCCLK引脚设置为特殊引脚输出,用示波器观察频率与标准比看相差多少PPM,然后通过寄存器RTCCTL2进行校正,例如我选择的是 512HZ 频率输出,观察最后的示数为 512.009HZ , 计算高出 18PPM,因此在校正时候要减去一个 18PPM,因此 RTCCTL2 中位 RTCCALS 位为 0,减计算。每 LSB 减 2,因此在 RTCCAL 中赋予数值 9。

4,实验代码:

#include "msp430x54x.h"

void Init_Rtc(void);

void Init_Clk(void);

void Init_System(void);

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 关看门狗

Init_System(); // 系统初始化

__bis_SR_register(LPM3_bits + GIE); // 进入低功耗 3

}

/************************ RTC 中断*****************************/

#pragma vector=RTC_VECTOR

__interrupt void basic_timer(void)

{

switch(RTCIV)

{

case 2 : P1OUT ^= BIT0;break; //RTCRDYIFG

case 4 : break;

case 6 : P1OUT |= BIT1;break; //RTCAIFG

case 8 : break;

case 10 : break;

}

}

void Init_System(void)

{

Init_Clk(); //调用时钟函数

Init_Rtc(); //RTC 初始化

P1DIR |= BIT1 + BIT0; //P1.1 P1.0 为输出

P1OUT &= ~(BIT1 + BIT0);

}

void Init_Rtc(void)

{ // BCD 码日历格式输出

RTCCTL01 = RTCBCD + RTCHOLD + RTCMODE + RTCTEV_0 ;

RTCPS0CTL = RT0PSHOLD ; //配置两个计数器分频

RTCPS1CTL = RT1PSHOLD ;

RTCSEC = 0x54; //初始化秒

RTCMIN = 0X59 ; //初始化分钟

RTCHOUR =0X21; //初始化小时

RTCDOW = 0X02 ;

//RTCTIM1 = 0X0421;

RTCDAY = 0x24; //日期初始化

RTCMON = 0X11 ; //初始化月份

RTCYEAR = 0x2005; //初始化年份

RTCAMINHR = 0X0180; //闹钟小时和分钟设置

RTCADOWDAY = 0X1203; //闹钟星期和日期设置

RTCCTL01 &= ~RTCHOLD; //打开 RTC 模块

RTCPS0CTL &= ~RT0PSHOLD; //打开 RTCPS0CTL

RTCPS1CTL &= ~RT1PSHOLD; //打开 RTCPS1CTL

RTCCTL0 |= RTCAIE + RTCRDYIE; //打开安全访问使能 ,闹钟使能

}

void Init_Clk(void)

{

P7SEL |= 0x03; //启动 XT1

UCSCTL1 = DCORSEL_2; //DCO 范围配置

UCSCTL4 = SELM_3 + SELA_0 + SELS_4; //设置时钟源

while (SFRIFG1 & OFIFG) //等待时钟系统正常工作

{

UCSCTL7 &= ~( XT1LFOFFG + DCOFFG);

SFRIFG1 &= ~OFIFG;

}

}

5,实验现象

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 示波器
    +关注

    关注

    113

    文章

    6159

    浏览量

    184242
  • 寄存器
    +关注

    关注

    31

    文章

    5282

    浏览量

    119761
  • RTC
    RTC
    +关注

    关注

    2

    文章

    521

    浏览量

    66200

原文标题:畅学多功能实验箱 MSP430F5438 RTC 操作实验

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    msp430f5438 1602程序求救

    调试1602程序好几天了啊。用的是msp430f5438 真心写了好几个程序,网上找了好几个程序,就是不好用啊,液晶亮是亮,也有方块,就是没有显示啊,求大神好用的程序啊,快崩溃了,
    发表于 04-28 21:48

    如何用msp430f5438制作简易示波器

    想要通过msp430f5438编写一个简单的示波器程序,波形在12864lcd上显示,信号由信号发生器产生,AD转换用定时器A溢出触发,希望哪位大神可以指导一二,谢谢了,相似的也可以,只要msp430制作就行
    发表于 05-01 11:04

    在厦门福州泉州地区找个熟悉MSP430f5438

    在厦门福州泉州地区找个熟悉MSP430f5438 指导老师!
    发表于 05-10 22:47

    MSP430F5438中文手册

    想在正想学MSP430F5438单片机的可以拿来看看,希望对你有帮助
    发表于 05-19 10:32

    关于msp430F5438的程序

    各位大神,我想找基于msp430f5438的AD转换然后在12864上显示电压的程序。。。。。请问谁有??5438的资料很难找啊,能不能介绍一些?
    发表于 08-10 11:16

    msp430f5438如何用

    如何使用msp430f5438单片机,我看着视频写了一个程序,下载进去没反应, 跪求指点
    发表于 08-30 16:00

    MSP430F5438例程

    MSP430F5438程序代码
    发表于 10-15 00:19

    MSP430F5438 求大神指导!!!

    MSP430F5438 求大神指导!!!现在只是简单看明白代码~~~毕设题目,用这款单片机做网关,ADC转换,串行通信,无线模块发送以及在TFT液晶或者单色液晶上的显示。求解烧程序步骤如何?想先调试一下例程~~~~然后再做修改!
    发表于 03-14 11:25

    msp430f5438资料

    msp430f5438资料学习
    发表于 04-26 16:36

    MSP430F5438最多可以做到几个UART口通信?

    MSP430F5438最多可以做到几个UART口通信
    发表于 10-23 06:09

    MSP430F5438官方代码库

    MSP430单片机f5438系列官方代码库
    发表于 01-11 17:00 41次下载

    基于msp430f5438芯片的控制器

    这是一个基于msp430f5438芯片的一个控制器,控制原理,以及芯片得各个模块的功能。
    发表于 04-28 11:51 3次下载

    MSP430F5438数字低频功率放大器

    MSP430F5438数字低频功率放大器
    发表于 03-05 15:00 0次下载

    msp430F5438用户指南

    msp430F5438用户指南
    发表于 10-12 16:43 38次下载

    搜集的很多msp430f5438示例代码

    搜集的很多msp430f5438示例代码
    发表于 05-04 14:08 31次下载
    搜集的很多<b class='flag-5'>msp430f5438</b>示例代码