嵌入式开发中通过系统心跳延时的方法,并且处理了溢出的情况(非阻塞延时)

unsigned int delay_timeout(unsigned int enter_timer, unsigned int ms)
{
    unsigned int get_tick = get_systick_time();
    unsigned int interval  = (get_tick >= enter_timer) ? (get_tick - enter_timer) : (~enter_timer + get_tick);    //0xFFFFFFFF +    get_tick - enter_timer ==》 0XFFFFFFFF - enter_timer + get_tick
   
    return (interval >= ms) ? 0: (ms - interval);
}

你可能感兴趣的:(单片机)