我正在开发 MCU,我的目标是在 MCU 上实现时间/日期。
我使用一个每秒滴答的计时器并将其存储在uint32_t count
足够大的大小以存储 136 年。我想有 2000 作为参考,最大值应该是 2099。
这是我的数据结构:
typedef struct
{
uint8_t sec; // Seconds. [0-60] (1 leap second)
uint8_t min; // Minutes. [0-59]
uint8_t hour; // Hours. [0-23]
uint8_t day; // Day. [1-31]
uint8_t month; // Month. [0-11]
uint8_t year; // Year - from 2000. [00-99]
} osal_time_t;
uint32_t count
使用最少的资源正确地将秒()转换为分钟/小时/天/月/年的最佳方法是什么?
时间、小时和年份似乎很简单,但一天变得棘手,有 28-29-30-31 天,而 2 月是每 4 年 29 天。
我看到了 linux 源代码实现,但我认为它是一个操作系统,而不是一个不起眼的 MCU。
任何人都可以暗示我应该在 MCU 中使用哪种算法,以便它需要最少。资源?
例如,使用什么算法来计算这个http://www.mathcats.com/explore/elapsedtime.html
如果您有任何代码片段,如果您能分享它,我将不胜感激。