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:TI-RTOS:是否可以检测 TimestampProvider 何时回滚?

Guru**** 2560420 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/965873/msp430fr5994-ti-rtos-is-there-a-way-to-detect-when-timestampprovider-rolls-over

器件型号:MSP430FR5994

大家好、

我对 TI-RTOS 有点陌生、但正如标题所述、我想知道是否有办法检测32位时间戳何时回滚? 我将使用它来检测长随机脉冲。

我的另一个选择是使用64位时间戳、但我不确定 MSP430硬件是否真正支持该时间戳(即高32位保持为零)? 如果是、如何将其类型(XDC_runtime_Types_Timestamp64)转换为64位数字?  

提前感谢!

TC

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

    您好、Terry、  

    我想请 RTOS 专家回答您的问题。  

    谢谢、  

    Lixin  

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

    假设它是一个无符号整型-如 Clock_getTicks(),则只需使用无符号减法,翻转即可自行完成。

    cf Arduino 板中关于此问题的大量文章、或亲自试用:

    uint32_t a、b、c;

    A = 100;//A 是初始时间

    b = 120;// b 是较晚的时间

    C = b-a;

    A = 0xFFFFFFFA;//A 为初始时间

    b = 10;// b 是较晚的时间

    c = b-a;// c 将为16左右

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

    感谢  

    我在另一个主题中看到有人在下面做了陈述、但我在文档中找不到任何对自动安装功能的引用。

    谢谢、Terry

    :  

    "较旧版本的 SYS/BIOS 要求您经常调用 Timestamp_get32/64、以便在连续调用之间检测到翻转。 这样做的一个方便的机制是添加一个周期时钟函数、此函数比32位翻转周期更频繁地关闭。
    
    如果使用了时间戳模块、SYS/BIOS 的更新版本会为此目的自动安装时钟函数。" 


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

    不过、感谢 Keith、由于测量的脉冲的性质、脉冲之间可能会发生多次翻转、因此我面临着两难的处境。

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

    您正在测量超过420万秒的脉冲?

    您需要什么精度? 为什么不使用实时时钟?

    您还可以设置一个真正、真正低优先级的任务、该任务需要进行滚动计数。