/*! * \brief Return the milliseconds counter value. * * This function returns the value of a counter, which is incremented * every system timer tick. During system start, the counter is cleared * to zero and will overflow with the 32 bit tick counter (4294967296). * With the default 1024 ticks/s this will happen after 49.71 days. * The resolution is also given by the system ticks. * * \note There is intentionally no provision to modify the seconds counter. * Callers can rely on a continuous update and use this value for * system tick independend timeout calculations. * Depending on * * \return Value of the seconds counter. */ uint32_t NutGetMillis(void) { // carefully stay within 32 bit values uint32_t ticks = NutGetTickCount(); uint32_t seconds = ticks / NutGetTickClock(); ticks -= seconds * NutGetTickClock(); return seconds * 1000 + (ticks * 1000 ) / NutGetTickClock(); }
/*! * \brief Calculate system ticks for a given number of milliseconds. */ u_long NutTimerMillisToTicks(u_long ms) { u_long x; x = ms * NutGetTickClock() / 1000UL; if (x == 0) { x = 1; } return (x); }
/*! * \brief Calculate system ticks for a given number of milliseconds. */ u_long NutTimerMillisToTicks(u_long ms) { return ms * 1000L / NutGetTickClock(); }
/*! * \brief Return the seconds counter value. * * This function returns the value of a counter, which is incremented * every second. During system start, the counter is cleared to zero. * * \note There is intentionally no provision to modify the seconds counter. * Callers can rely on a continuous update and use this value for * system tick independend timeout calculations. Applications, * which want to use this counter for date and time functions, * should use an offset value. * * \return Value of the seconds counter. */ uint32_t NutGetSeconds(void) { return NutGetTickCount() / NutGetTickClock(); }