您好,
我正在使用msp430f5659微控制器。 我正在使用TI给出的示例连接内部RTC模块。 我的RTCis工作正常,但有时会卡在"做时"循环中。 我在不同的硬件设备上执行了此操作,但我在所有硬件上都面临相同的问题。 我正在使用32.768kHz的晶振。
我在VBAT引脚上使用3.6V的电池,470nf的电容器连接到vbak引脚。 为什么会出现此问题? 请帮助我找到上述问题的解决方案。
While (BAKCTL和LOCKBAK) //解锁XT1引脚以进行操作
BAKCTL &=~(LOCKBAK);
UCSCTL6 &=~(XT1OFF); // XT1开
UCSCTL6 |= XCAP_3; //内部负载盖
做
{
UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG);
//清除XT2,XT1,DCO故障标志
SFRIFG1 &=~OFIFG; //清除故障标志
} While (SFRIFG1&OFIFG); //测试振荡器故障标志
RTCCTL01 |= RTCHOLD + RTCBCD ;// BCD模式,RTC保持,启用RTC读取就绪中断
RTCYEAR = 0x2017; // Year = 0x2011
RTCMON = 0x10; //月= 0x06 =六月
RTCDAY = 0x30; //天= 0x22 = 22
RTCDOW = 0x05; //星期几= 0x05 =星期五
RTCHOUR = 0x14;
//小时= 0x11
RTCMIN = 0x10; //分钟= 0x59
RTCSEC = 0x00; //秒= 0x45
RTCCTL01 &=~(RTCHOLD); //启动RTC日历模式