/** * \brief Process timing functions. */ static void timers_update(void) { static uint32_t ul_last_time; uint32_t ul_cur_time, ul_time_diff, ul_idx_timer; timers_info_t *p_tmr_inf; ul_cur_time = sys_get_ms(); if (ul_cur_time >= ul_last_time) { ul_time_diff = ul_cur_time - ul_last_time; } else { ul_time_diff = 0xFFFFFFFF - ul_last_time + ul_cur_time; } if (ul_time_diff) { ul_last_time = ul_cur_time; for (ul_idx_timer = 0; ul_idx_timer < (sizeof(gs_timers_table) / sizeof(timers_info_t)); ul_idx_timer++) { p_tmr_inf = &gs_timers_table[ul_idx_timer]; p_tmr_inf->timer += ul_time_diff; if (p_tmr_inf->timer > p_tmr_inf->timer_interval) { if (p_tmr_inf->timer_func) { p_tmr_inf->timer_func(); } p_tmr_inf->timer -= p_tmr_inf->timer_interval; } } } }
u32_t sys_now(void) { return (sys_get_ms()); }