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.

[参考译文] CC2538:RTC 似乎会使时间延长一倍

Guru**** 2380860 points
Other Parts Discussed in Thread: Z-STACK, SMARTRF06EBK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/679206/cc2538-rtc-seems-doubling-the-time

器件型号:CC2538
Thread 中讨论的其他器件:Z-stackSMARTRF06EBK

您好!  

我将按如下方式设置 RTC

UTCSetTime = osal_mem_alloc (8);

//设置实时//
UTCSetTime->seconds =(字符) 0;
UTCSetTime->Minutes =(字符) 0;
UTCSetTime->Hour =(字符) 0;
UTCSetTime->Day =(字符) 1;
UTCSetTime->Month =(字符) 1;
UTCSetTime->year = 2018;

OSAL_setclock (osal_ConvertUTCSecs (UTCSetTime));
osalTimeUpdate ();
osal_mem_free (UTCSetTime);

一段时间后我使用 osal_getClock()执行读取操作;   

每次我得到两个时间递增。

我的意思是、如果我在10秒后读取、RTC 将返回20秒、类似地、如果我在50秒后读取、RTC 将返回100秒、那么为什么会出现此问题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否使用 IAR 调试进行测试? 如果是、则可能是由调试引起的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然、我也尝试了在 UART 控制台中进行调试、也尝试了使用 OSAL 计时器。 在这种情况下、我的器件与调试器完全不连接、甚至朝向相同的方向。
    你的坦克
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Raghunandana、

    无论您将当前时间设置为什么,osal_getClock()都只返回 OSAL_timeSeconds,这应该是相当准确的。 您使用的是什么 Z-Stack 版本、您是否进行了任何修改? 默认情况下使用外部32kHz 晶体振荡器、您是否使用 TI EVM 或定制 PCB 进行评估?

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    感谢您的回复、我使用的是"Z-stack3.0"、在 TI EVM 和我的定制 PCB 中也是如此、我们还在其中使用32kHz 晶体振荡器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很奇怪、因为我使用 Z-Stack 3.0以及 SMARTRF06EBK 和 CC2538EM 获得了正确的时间、这是 osal_run_system 内使用 osal_getClock 的默认示例。 您是否对 OSAL_Clock/Timers 文件进行了任何更改?

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不、我没有触及您所指的任何内容。
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    自去年8月以来、您是否未解决此问题? e2e.ti.com/.../

    您使用的是什么版本的 IAR EWARM、并且您是否在 C/C++编译器项目选项中进行了任何预处理器或优化更改? 请采用我提到的同一示例,创建一个全局 uint32变量,并使用 osal_getClock()更新变量;在 osal_run_system 中,查看这是否提供相同的结果。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    自去年8月以来、您是否未解决此问题?
    不、它现在被优先化。 我使用的是"IAR EWARM 7.70.2"。
    我将再次尝试您的建议。

    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Z-Stack 3.0.1是在 IAR EWARM 8.11.1上构建/测试的、我建议您也升级 IDE。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    工作正常。 这是因为我在每次读取前更新时钟。
    谢谢你