X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Ftimer.h;h=0d975f30d83a0d75d4582ed9d1cef67adb04756f;hb=06f0503a2066ab4fd13529b8ed8906e52b1d672b;hp=bcf1ac9d14d9ecde1c6020da3d722a123870fb88;hpb=1981202f8c3e005f0504137204ddef70fcbc824c;p=bertos.git diff --git a/drv/timer.h b/drv/timer.h index bcf1ac9d..0d975f30 100755 --- a/drv/timer.h +++ b/drv/timer.h @@ -15,6 +15,12 @@ /*#* *#* $Log$ + *#* Revision 1.19 2004/12/08 08:30:37 bernie + *#* Convert to mtime_t; timer_minutes(): Remove. + *#* + *#* Revision 1.18 2004/11/16 23:09:52 bernie + *#* Disable timer_minutes() for targets with 16bit time_t. + *#* *#* Revision 1.17 2004/11/16 22:37:14 bernie *#* Replace IPTR with iptr_t. *#* @@ -65,17 +71,17 @@ #ifndef DRV_TIMER_H #define DRV_TIMER_H -#include "cpu.h" -#include "compiler.h" -#include #include +#include +#include +#include /*! Number of timer ticks per second. */ -#define TICKS_PER_SEC ((time_t)1000) +#define TICKS_PER_SEC ((mtime_t)1000) /* Function protos */ extern void timer_init(void); -extern void timer_delay(time_t time); +extern void timer_delay(mtime_t time); #ifndef CONFIG_TIMER_DISABLE_UDELAY extern void timer_udelay(utime_t utime); @@ -84,7 +90,7 @@ extern void timer_udelay(utime_t utime); #ifndef CONFIG_TIMER_DISABLE_EVENTS -#ifdef CONFIG_KERNEL +#if CONFIG_KERNEL #include #else #include @@ -99,10 +105,10 @@ extern void timer_udelay(utime_t utime); */ typedef struct Timer { - Node link; /*!< Link into timers queue */ - time_t delay; /*!< Timer delay in ms */ - time_t tick; /*!< Timer will expire at this tick */ - Event expire; /*!< Event to execute when the timer expires */ + Node link; /*!< Link into timers queue */ + mtime_t delay; /*!< Timer delay in ms */ + mtime_t tick; /*!< Timer will expire at this tick */ + Event expire; /*!< Event to execute when the timer expires */ } Timer; extern void timer_add(Timer *timer); @@ -125,14 +131,14 @@ INLINE void timer_set_event_softint(Timer* timer, Hook func, void* user_data) } /*! Set the timer delay (the time before the event will be triggered) */ -INLINE void timer_set_delay(Timer* timer, time_t delay) +INLINE void timer_set_delay(Timer* timer, mtime_t delay) { timer->delay = delay; } #endif /* CONFIG_TIMER_DISABLE_EVENTS */ -extern volatile time_t _clock; +extern volatile mtime_t _clock; /*! * \brief Return the system tick counter (expressed in ms) @@ -143,7 +149,7 @@ extern volatile time_t _clock; * The following code is safe: * * \code - * time_t tea_start_time = get_tick(); + * mtime_t tea_start_time = get_tick(); * * boil_water(); * @@ -151,16 +157,16 @@ extern volatile time_t _clock; * printf("Your tea, Sir.\n"); * \endcode * - * When the tick counter increments every millisecond and time_t + * When the tick counter increments every millisecond and mtime_t * is 32bit wide, the tick count will overflow every 49.7 days. * * \note This function must disable interrupts on 8/16bit CPUs because the * clock variable is larger than the processor word size and can't * be copied atomically. */ -INLINE time_t timer_ticks(void) +INLINE mtime_t timer_ticks(void) { - time_t result; + mtime_t result; cpuflags_t flags; DISABLE_IRQSAVE(flags); @@ -178,22 +184,9 @@ INLINE time_t timer_ticks(void) * * \sa timer_ticks */ -INLINE time_t timer_ticks_unlocked(void) +INLINE mtime_t timer_ticks_unlocked(void) { return _clock; } - -/*! - * Return the minutes passed since timer start. - * - * The uptime in minutes is computed directly from system tick counter. - * This value wraps around every 71582 minutes with a 32bit time_t. - */ -INLINE time_t timer_minutes(void) -{ - return timer_ticks() / (TICKS_PER_SEC * 60); -} - #endif /* DRV_TIMER_H */ -