【发布时间】:2010-09-08 20:29:27
【问题描述】:
我在硬件中有一个计数器,我可以观察它以考虑时间问题。它以毫秒为单位,以 16 位无符号值存储。如何安全地检查计时器值是否已经过了一定时间并安全地处理不可避免的翻转:
//this is a bit contrived, but it illustrates what I'm trying to do
const uint16_t print_interval = 5000; // milliseconds
static uint16_t last_print_time;
if(ms_timer() - last_print_time > print_interval)
{
printf("Fault!\n");
last_print_time = ms_timer();
}
当 ms_timer 溢出到 0 时,此代码将失败。
【问题讨论】:
标签: c++ c timer rollover embedded