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/TM4C123GH6PM:TI-RTOS 中的日期/时间

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/603302/rtos-tm4c123gh6pm-date-time-in-ti-rtos

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

大家好、

我将 TI-RTOS 用于 Tiva C、CCS7、编译器16.9.x、XDC 3.2.1.22。

我需要在程序中保存日期和时间。 我使用以下代码:  

在.cfg 文件中、我添加了:

VAR 秒= xdc.useModule('ti.sysbios.hal.Seconds'); 

在您的应用程序.c 代码中、包括:

#include 
#include 

我添加以下代码:

time_t ts;
//设置从 epoch 开始的当前时间(以秒为单位)*/
seconds_set (1432145807);
ts = time (NULL);
System_printf ("%s"、ctime (&ts)); 

My problem is that the timedoesn't update, It seems the function ti_sysbios_hal_Seconds_get() using by time() doesn't give the newseconds.

Can someone give me some advises to solve thisproblem ?

Thanks in advance,

Cheers,

Pierre Gogendeau

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不使用 TI-RTOS、我不知道在这个论坛中有多少工作、但我首先要检查的是 RTC 是否已初始化并正常运行? 在将其连接到 RTOS 之前、我需要验证它。

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

    是否可以确认正确生成了 TIME()函数? 在构建内核的工程的 Debug\configPkg\package\cfg 目录中查找。 您将看到一个名为<.cfg 名称>_p 的"C"文件 C. 这是一个大文件。 搜索 time(),您能否发布它的外观?

    它应该看起来是这样的

    /*
    *==== 时间====
    *
    time_t 属性 time (time_t *tout)

    uint32 t;

    /* seconds_get()返回1970年1月1日起的秒数00:00:00 GMT。 *
    t = ti_sysbios_hal_dseconds_get ();

    #if defined (_ti__)
    /*
    * TI TIME()函数自1900年起返回秒,因此添加数字
    1900至1970年*秒(2208988800)。
    *
    t += 2208988800;
    #endif

    如果(TOUT){
    *输出= t;


    返回(t);


    此外、您能否确认 seconds_get 是否正常工作?

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

    您好、Robert、

    感谢您的快速回答。 我将首先检查您是否正确。

    皮埃尔

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

    我的函数 time()是正确的,而我的函数 seconds_get()有问题。 在检查 seconds.c 之后,我看到 second_get()使用用于休眠模式的宏也是"HWREG (x)"。 在使用计时器之前的代码中,我忘记了删除 HibernateDisable()(当我对休眠模式进行一些测试时使用了它)。 它现在可以正常工作、感谢您的帮助。

    皮埃尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴您找到了问题。