429|0

922

帖子

0

资源

纯净的硅(初级)

请教MSP430F6723的RTC不能使用内部时钟REFOCLK吗?

在430F6723的时钟配置如下:

UCSCTL4 &= ~(SELA0 | SELA1 | SELA2); // Ensure XT1 is ACLK source // (127+1) x 32768 = 4194304hz(4.19455)
UCSCTL4 |= SELA1;
UCSCTL3 |= SELREF__REFOCLK;
do
{
UCSCTL7 &= ~(XT2OFFG | XT1LFOFFG | DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
} while ((SFRIFG1 & OFIFG)&&(delay--)); // Test oscillator fault flag

///jackwei时钟SMCLK变为4194304hz
__bis_SR_register(SCG0); // 禁止FLL功能
UCSCTL0 = 0x0000 ;
UCSCTL1 = DCORSEL_5; // DCO频率为(2.5~6MHz)手册37页
UCSCTL2 = FLLD_1 + 127; // 设置DCO频率为4194304hz
__bic_SR_register(SCG0); // 使能FLL功能

设置的ACLK为REFOCLK时钟源

在RTC的配置为:

void rtc_init(void)
{
// RTCCTL1 = RTCTEVIE + RTCRDYIE + RTCMODE+ RTCSSEL_0+ RTCTEV__MIN+ RTCAIE; //
RTCCTL0_H = RTCKEY_H; //解锁RTC_C模块
RTCCTL0_L = RTCTEVIE+ RTCRDYIE + RTCAIE ; //启用RTC时间事件中断
RTCCTL13 = RTCTEV_3+ RTCMODE + RTCHOLD+ RTCSSEL_0; // BCD模式,RTC保持,将RTCTEV设置为12:00分钟警报,32khz RTCBCD++ RTCHOLD
//事件中断
RTCYEAR = 2020; // Year = 0x2020
RTCMON = 8; //月= 0x10 =十月
RTCDAY = 3; // Day = 0x07 = 7th
RTCDOW = 1; //星期几= 0x05 =星期五
RTCHOUR = 5; //小时= 0x11
RTCMIN = 59; //分钟=59
RTCSEC = 0; //秒= 0


RTCCTL13 &=~(RTCHOLD); //启动RTC日历模式
RTCCTL0_H = 0; //锁定RTC_C模块
RTCAHOUR = RTCAE + 6;
}

不知为什么RTC 的中断很长时间才进入一次。大约50s进入RTCIV_RTCRDYIFG中断1次。

其中 中断源中RTCOFIFG =1;
TIMEARA中配置的时间较为准确,不知道什么原因导致RTC差距很大。


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

关闭
站长推荐上一条 1/5 下一条

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

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

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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