我有一个硬件计数器,我可以观察时间考虑因素.它计算毫秒数并存储在16位无符号值中.如何安全地检查计时器值是否已经过一定时间并安全地处理不可避免的翻转:
@H_404_2@//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时,此代码将失败.