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.

[参考译文] LP-CC1352P7:RTC 时间戳不能正常工作

Guru**** 2408730 points
Other Parts Discussed in Thread: CC1352P7

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1276813/lp-cc1352p7-rtc-timestamp-not-working-properly

器件型号:LP-CC1352P7
主题中讨论的其他器件:CC1352P7

您好!

我正在一个项目中工作。 为此、我需要每秒使用一个时间戳(传感器读取时间)。 我举一个例子,互联网是下面给出。

#include <time.h>
#include <ti/sysbios/hal/Seconds.h>
#include <ti/drivers/dpl/ClockP.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <unistd.h>
#include <stdio.h>

char risp[40];
String args = "2023-10-03 15:48:00";
String getTime()
{
    struct tm *ltm;
    time_t now;
    now = time(NULL);
    ltm = gmtime(&now);
    memset(risp,0, strlen(risp));
    strftime(risp, 40, "%d/%m/%y-%H:%M:%S", ltm);
//    printf("%s\r\n",risp);
    return risp;
}

void setTime()
{
    struct tm ltm;
    memset(&ltm, 0, sizeof(struct tm));
    if( sscanf(args, "%d-%d-%d %d:%d:%d", &ltm.tm_year, &ltm.tm_mon, &ltm.tm_mday, &ltm.tm_hour, &ltm.tm_min, &ltm.tm_sec) == 6 )
    {
        ltm.tm_year  -=  1900;
        ltm.tm_mon   -=  1;
        ltm.tm_isdst  =  1;
        _tz.timezone = 0;
        time_t newTime = mktime(&ltm);
        Seconds_set(newTime - 2208988800); //ATTENTION!!
    }
}

在这里,我唯一的问题是:当我从 gettime ()函数读取时间。 没有获得正确的日期。 我将提前一天预定日期。 而不是今天的日期,我得到明天的日期,而是从 gettime 函数读它。没有问题与时间。 问题仅在于日期。

2天后出现此问题。  

时区 :印度时间 。 我认为这里不需要使用时区。

你能帮我吗?

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

    尊敬的 Selvakumaran:

    您能否告诉我们您正在使用的 SDK 版本以及硬件? 是 Launchpad 板吗?

    此外、您在使用什么编译器? 这对我们来说很重要。

    此致、

    亚瑟

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

    Arthur、您好!

    感谢您的回复、

    我们使用的是 SDK 版本7。

    硬件为 CC1352P7 (TI 批准的 BDE 模块)。

    编译器为 CCS V12。

    此致、

    塞尔瓦

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

    您好 Selvakumaran:

    您能不能尝试使用以下 使用 TI-RTOS 来跟踪时间的示例?
    必须在开始时设置初始时间。
    你可以调用 getSecond (), getMinute ()... 得到实际时间。

    e2e.ti.com/.../bigtime_5F00_CC1312R1_5F00_LAUNCHXL_5F00_tirtos7_5F00_ticlang.zip

    如果这对您有帮助、请告诉我。

    此致
    曼努埃

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

    您好,Manuel  

    我们按照您的建议尝试了示例、与 time.h.h 相比、代码大小似乎太大。此外 、我们无法运行另外两个 pthreads..please 使用 cc1352p7 (bad 模块)中的 time.h 库建议任何更好的解决方案。

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

    尊敬的 Manu:

    如果要继续使用 time.h 库、能否再次指定当前正在使用的编译器、因为这会对时序产生影响。
    我看到您正在使用 Code Composer Studio、但您在使用 TIClang 或任何其他编译器吗?

    此致
    曼努埃

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

    您好  

    我们正在使用 TIClang 编译器