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.

[参考译文] CCS/MSP430FR5994:RTC 中断声明怀疑

Guru**** 2538950 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/652070/ccs-msp430fr5994-rtc-interrupt-declaration-doubt

器件型号:MSP430FR5994

工具/软件:Code Composer Studio

你(们)好

我是 sathishkumar,我是 msp430fr5994的初学者,现在我正在使用开箱即用的软件示例项目,这里是 FRAM 日志模式,他们说每5秒,数据就会存储在 FRAM 中... 它基于下面给出的 RTC 中断,我的问题是,如何更改中断时序...... 如果我想使 RTC 中断每10秒发生一次,我如何对它进行编码? … 在编码中声明5秒的位置?   我浏览了用户指南,他们在其中提到 RTCTEVIFG 只在几分钟、一小时、中午和午夜。他们是如何编码5秒的? 在编码中声明在哪里? 如何根据我的需要将其更改为10秒或15秒?....please 尽快澄清我的疑问.... 谢谢你

/*

 * RTC_C 中断向量处理程序

 *从 LPM3唤醒以将温度记录到 FRAM 中

 *

 *

#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)

#pragma vector=RTC_vector

_interrupt

#Elif defined (_GNU_)

__attribute__((中断(RTC_Vector))

#endif

空 RTC_ISR (空)

   switch (__event_in_range (RTCIV、16))

   {

       案例 RTCIV_NONE:中断;        //无中断

       案例 RTCIV_RTCOFIFG:中断;    //RTCOFIFG

       案例 RTCIV_RTCRDYIFG:中断;   //RTCRDYIFG

       案例 RTCIV_RTCTEVIFG:          //RTCEVIFG

           //每5秒中断一次

           __no_operation();          //用于调试

           _BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);   //退出 LPM3

           中断;

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

    我将检查您的问题、并在明天回答您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,我在等,谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我只能在 Init_rtc()中找到将事件设置为分钟更改的代码。 但是、我没有找到5的任何配置。
    RTC_C_setCalendarEvent (RTC_C_base、
    RTC_C_CALENDAREVENT_INTOTECHANGE
    );

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

    您好 Sathishkumar、

    正如您正确指出的、RTCTEVIFG 的最小间隔是当 RTCMIN 改变时的间隔。

    但是、由于 RTC_C 日历允许设置最高为秒分辨率、为了实现小于1分钟的间隔中断、用户只需在中断后每次更改一分钟之前将日历时钟复位为 X 秒

    在 OutOfBox main.c 的 Init_rtc()函数中,请注意,在发生分钟更改事件之前,秒设置为55,5秒。 (在这种情况下、其余的日历设置是不关心的)

    void Init_rtc ()
    {
    //设置日历的当前时间
    calender.seconds = 0x55;
    calender.minutes = 0x30;
    日历.小时数 = 0x04;
    calender.DayOfWeek = 0x01;
    calender.dayofmonth = 0x30;
    日历月 = 0x04;
    日历。年 = 0x2014; 

    要使中断间隔持续10秒、请将日历秒更改为0x50。

    请注意,每次由于 RTC 中断使器件从 LPMx.5唤醒时都会调用 Init_RTC():

    int main (void){
    
    //检查是否从 LPMx.5唤醒
    if (SYSRSTIV = SYSRSTIV_LPM5WU){
    //按钮 S2被按下
    中频(P5IFG 和 BIT5)
    {
    //清除 P1.1中断标志
    GPIO_clearInterrupt (GPIO_PORT_P5、GPIO_PIN5);
    
    //退出 FRAM 日志模式
    MODE ="0";
    
    //点亮 LED1以指示退出 FRAM 模式
    init_gpio();
    GPIO_setOutputHighOnPin (GPIO_PORT_P1、GPIO_PIN0);
    _DELAY_CYCLES (600000);
    }
    其他
    {
    //继续 FRAM 数据记录
    MODE = FRAM_LOG_MODE;
    init_rtc();
    init_gpio();
    framLog();
    }
    } 

    此致、
    Eric C.