X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=bertos%2Fdrv%2Ftimer.h;h=aaa35dc6732fca49ccce295ead3b98b264f5bf56;hb=6a60d159530b29a6f60edbad42d0e31c1f1994d9;hp=3d03c78112a2f078b470559f3ca1da109add1786;hpb=c22fe24a0da896a52dbc3882390ec18a440ef56a;p=bertos.git diff --git a/bertos/drv/timer.h b/bertos/drv/timer.h index 3d03c781..aaa35dc6 100644 --- a/bertos/drv/timer.h +++ b/bertos/drv/timer.h @@ -27,7 +27,7 @@ * the GNU General Public License. * * Copyright 2003, 2004, 2005 Develer S.r.l. (http://www.develer.com/) - * Copyright 2000 Bernardo Innocenti + * Copyright 2000 Bernie Innocenti * * --> * @@ -35,7 +35,7 @@ * * \version $Id$ * - * \author Bernardo Innocenti + * \author Bernie Innocenti * */ @@ -63,8 +63,23 @@ #include #include -#include +#include +/* + * Sanity check for config parameters required by this module. + */ +#if !defined(CONFIG_TIMER_EVENTS) || ((CONFIG_TIMER_EVENTS != 0) && CONFIG_TIMER_EVENTS != 1) + #error CONFIG_TIMER_EVENTS must be set to either 0 or 1 in cfg_timer.h +#endif +#if !defined(CONFIG_TIMER_UDELAY) || ((CONFIG_TIMER_UDELAY != 0) && CONFIG_TIMER_EVENTS != 1) + #error CONFIG_TIMER_UDELAY must be set to either 0 or 1 in cfg_timer.h +#endif +#if defined(CONFIG_TIMER_DISABLE_UDELAY) + #error Obosolete config option CONFIG_TIMER_DISABLE_UDELAY. Use CONFIG_TIMER_UDELAY +#endif +#if defined(CONFIG_TIMER_DISABLE_EVENTS) + #error Obosolete config option CONFIG_TIMER_DISABLE_EVENTS. Use CONFIG_TIMER_EVENTS +#endif extern volatile ticks_t _clock; @@ -178,15 +193,20 @@ INLINE utime_t hptime_to_us(hptime_t hpticks) #endif /* TIMER_HW_HPTICKS_PER_SEC < 100000UL */ } - -void timer_init(void); void timer_delayTicks(ticks_t delay); INLINE void timer_delay(mtime_t delay) { timer_delayTicks(ms_to_ticks(delay)); } -#if !defined(CONFIG_TIMER_DISABLE_UDELAY) +void timer_init(void); +void timer_cleanup(void); + +int timer_testSetup(void); +int timer_testRun(void); +int timer_testTearDown(void); + +#if CONFIG_TIMER_UDELAY void timer_busyWait(hptime_t delay); void timer_delayHp(hptime_t delay); INLINE void timer_udelay(utime_t delay) @@ -195,7 +215,7 @@ INLINE void timer_udelay(utime_t delay) } #endif -#ifndef CONFIG_TIMER_DISABLE_EVENTS +#if CONFIG_TIMER_EVENTS #include @@ -219,22 +239,25 @@ typedef struct Timer #define TIMER_MAGIC_ACTIVE 0xABBA #define TIMER_MAGIC_INACTIVE 0xBAAB -extern void timer_add(Timer *timer); -extern Timer *timer_abort(Timer *timer); +void timer_add(Timer *timer); +Timer *timer_abort(Timer *timer); /** Set the timer so that it calls an user hook when it expires */ -INLINE void timer_set_event_softint(Timer *timer, Hook func, iptr_t user_data) +INLINE void timer_setSoftInt(Timer *timer, Hook func, iptr_t user_data) { event_initSoftInt(&timer->expire, func, user_data); } +// OBSOLETE +#define timer_set_event_softint timer_setSoftInt + /** Set the timer delay (the time before the event will be triggered) */ INLINE void timer_setDelay(Timer *timer, ticks_t delay) { timer->_delay = delay; } -#endif /* CONFIG_TIMER_DISABLE_EVENTS */ +#endif /* CONFIG_TIMER_EVENTS */ #if defined(CONFIG_KERN_SIGNALS) && CONFIG_KERN_SIGNALS