我正在做一些嵌入式系统工作并且有一些问题。我有一个定时器功能,每100ms发射一次。我现在需要在系统启动后获得实际时间。
目前我的代码是这样的:
struct timer
{
uint8_t millis_100;
uint8_t minute_455;
}
void tick()
{
//fires evry 100ms
timer_task.millis_100++;
}
但是我很困惑,如果这是正确的方法,因为我需要检查millis_100是否溢出到0然后在ISR例程内增加它。如果我需要超过455 * 2 ^ 8-1那么我需要在ISR中添加另一个if语句。这是系统滴答用于制作软件定时器的方法吗?还是有更优雅的解决方案?