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.

[参考译文] RTOS/CC1350:睡眠时间不准确 CC1310/CC1350

Guru**** 2538950 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/761933/rtos-cc1350-inaccurate-sleep-time-cc1310-cc1350

器件型号:CC1350
主题中讨论的其他器件:CC1310

工具/软件:TI-RTOS

您好!

我稍微修改了 instandby 代码、发现了一些奇怪的东西。

基本上、我将代码修改为如下所示:

睡眠(7200);

PIN_setOutputValue (hPin、Board_PIN_LED1、1);
睡眠(100);
PIN_setOutputValue (hPin、Board_PIN_LED1、0);

我进行了三次测试:

1.让主板“SLEEP (7200)”,然后让 LED 闪烁“SLEEP (850)":

结果:LED 在48分钟(*而不是2小时*)后亮起,并正确地停留了850S

2.尝试使用"SLEEP (3600)"、然后让 LED 闪烁"SLEEP (100)":

结果:  LED 在60分钟后正确打开并保持 100秒

3.尝试使用"SLEEP (3600) "、然后使用"SLEEP (3600)" 、然后闪烁"SLEEP (100)"的 LED:

结果:  LED 在120分钟后正确打开并保持 100秒

有人知道这里到底发生了什么? 为什么睡眠(7200)在睡眠(3600)时无法正常工作? CC1310 Lauchpad 上同样存在问题。

谢谢、

Yoyo

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

    这是由于 SLEEP 函数中的数学溢出导致计算值在末尾对应于2905 s (48分钟)。 要解决此问题、您可以立即使用 Task_sleep (ticks) API、其中的节拍周期在"Clock_tickPeriod"符号中给出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢!