This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5994:用于寄存器写入/读取的 RTC C 访问窗口

Guru**** 2589245 points
Other Parts Discussed in Thread: MSP430FR5994

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/832188/msp430fr5994-rtc-c-access-window-for-register-write-reads

器件型号:MSP430FR5994

MSP430FR5994系列指南指出、由于系统时钟可能与 RTC 时钟源异步、当 RTCRDY 处于高电平时、访问 RTC 寄存器(RTCSEC、RTCMIN、... RTCYEAR)是安全的、以避免同步问题。 当 RTC 未运行时(即退出循环通电 或 RTC 被 RTC_C_HOLDClock (RTC_C_BASE)宏显式停止时、这是否也适用?  我插入了一个代码示例、其中注释了 RTCRDY 代码。

int main (void){

init_gpio();
init_Clock();
init_uart();


_disable_interrupt ();
if (!(FS_PTR->sys_init)){
calender.seconds = 0x00;/0x3b max (十进制59)
calender.minutes = 0x29;//0x3b max (十进制59)
日历.小时数 = 0x05;//0x3b 最大值(十进制59)
calender.DayOfWeek = 0x00;
calender.dayofmonth = 0x05;//0xif max (十进制31)
日历月 = 0x02;//0x0c 最大值(十进制12)
日历。年 = 0x07e3;//0x2019;
}
//Setup Current Time for Calendar (二进制格式)
/*
*如果 RTC 未运行、是否需要执行此操作?

RTC_C_clearInterrupt (RTC_C_base、RTCRDYIFG);//清除 RTCRDY 标志
RTC_C_enableInterrupt (RTC_C_base、RTCRDYIE);//启用中断)
_bis_SR_register (LPM3_bits | GIE);//等待访问窗口打开
_BIC_SR_register (GIE);
*
RTC_C_initCalendar (RTC_C_base、&calendar、RTC_C_format_binary);//将 CURRENT_TIME 设置为 RTC 

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    对任何计数寄存器的写入立即生效。 然而、在写入期间时钟被停止。 此外、RT0PS 和 RT1PS 寄存器被复位。 这可能会导致写入期间损失长达1秒。 但是 、当 RTC 尚未运行时、写入没有问题。