Other Parts Discussed in Thread: EK-TM4C1294XL
Thread 中讨论的其他器件:EK-TM4C1294XL
您好!
这是一个有关休眠模块上 RTC 的非常简单的问题。 我已经在使用它来跟踪使用 RTC 的时间。 它运行正常、但我找不到内部 RTC 的年范围。
由于数据表提到使用32位计时器、我假设 RTC 将在2038上溢出。 是这样吗?
如果这很重要、我使用的是 TIvaware 库、它返回一个"struct TM"、使用1900作为参考。
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.
Other Parts Discussed in Thread: EK-TM4C1294XL
您好!
这是一个有关休眠模块上 RTC 的非常简单的问题。 我已经在使用它来跟踪使用 RTC 的时间。 它运行正常、但我找不到内部 RTC 的年范围。
由于数据表提到使用32位计时器、我假设 RTC 将在2038上溢出。 是这样吗?
如果这很重要、我使用的是 TIvaware 库、它返回一个"struct TM"、使用1900作为参考。
您好、Charles、
是的、你是对的。
最后一个问题:我应该修改哪些文件/函数、以便可以开始计算2000年而不是1900年的年数? 我认为我不应该与"time.h"相乱。 我想知道我是否可以假设 TivaWare 函数上提供的"struct TM"从2000年开始、但我意识到这样做可能会使我依赖的 mktime 和 localtime 函数从"struct TM"转换为"秒后"变得一团糟。
我已经在添加和减去70年、以创建兼容的"Linux epoch "时间戳。
不过、另一个问题是、如果基准年变化可以被4除、那么、在基准年变化时、移动基准年不应该与闰年计算相混乱、这是正确的吗?
您好!
我想知道您是否有机会在下运行 TivaWare 休眠示例 /examples/boards/EK-TM4C1294XL/hibernate. 如果您运行此示例、则会显示如何使用 date 命令通过终端窗口设置 DD/MM/YYYY。 当正确输入 DD/MM/YYYY 时,它将调用 DateTimeSet()函数,该函数将使用输入的日期/月/年加载 Stime 结构,然后调用 HibernateCalendarSet() API。 请参见下面的。
在 HIBERNATE_COMMAND_c 中
/********* // //命令:日期 // //设置当前系统日期。 使用格式"DD/MM/YYYY" // /********* int cmd_date (int argc、char **argv) { const char * pcNext; // //检查参数计数并返回错误太多或太少。 // if (argc ==1) { return (CMDLINE_TO_LING_args); } if (argc > 2) { return (CMDLINE_TOW_DONE_args); } // //将日期转换为无符号长整型 // G_ui32DayIdx = ustoutul (argv[1]、&pcNext、10); g_ui32MonthIdx = ustoutul (pcNext+1、&pcNext、10)-1; G_ui32YearIdx =(ustoutul (pcNext+1、NULL、10)- 2000); // //执行到时间结构的转换并将其存储在休眠中 //模块。 // if ((g_ui32DayIdx > 31)||(g_ui32MonthIdx > 11)) { return (CMDLINE_INVALID_ARG); } DateTimeSet(); 返回(0); }
文件中。
// // //此函数将请求的日期和时间写入 //休眠模块的日历逻辑。 //// ***************** void DateTimeSet (void) { struct tm Sttime; // //获取最新日期和时间。 这是在这里完成的、因此没有改变 //可以按原样回写部分日期和时间。 // HibernateCalendarGet (&S); // //设置要更新的日期和时间值。 // Stime.TM_hour = g_ui32HourIdx; Stime.TM_min = g_ui32MinIdx; Stime.TM_mon = g_ui32MonthIdx; Stime.TM_mday = g_ui32DayIdx; Stime.TM_year = 100 + g_ui32YearIdx; // //使用请求的数据更新休眠模块的日历逻辑。 // HibernateCalendarSet (&S);