我有一个硬件计数器用于时间考虑,它计算毫秒并以一个16位无符号值存储。如何安全地检查定时器的值是否已经超过了一定时间,并安全地处理不可避免的溢出:
//这段代码有点牵强,但它说明了我的意图 const uint16_t print_interval = 5000; // 毫秒 static uint16_t last_print_time;
if((ms_timer() - last_print_time) > print_interval) { printf("故障!\n"); last_print_time = ms_timer(); }
当ms_timer溢出到0时,此代码将失败。
//这段代码有点牵强,但它说明了我的意图 const uint16_t print_interval = 5000; // 毫秒 static uint16_t last_print_time;
if((ms_timer() - last_print_time) > print_interval) { printf("故障!\n"); last_print_time = ms_timer(); }
当ms_timer溢出到0时,此代码将失败。