From: asterix Date: Mon, 19 May 2008 16:13:21 +0000 (+0000) Subject: Move emul timer qt to correct directory. X-Git-Tag: 2.0.0~650 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=7a88d4d67f907aa2d714378d16b6829440210330;p=bertos.git Move emul timer qt to correct directory. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1284 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/bertos/drv/timer_qt.c b/bertos/drv/timer_qt.c deleted file mode 100644 index 6f96da64..00000000 --- a/bertos/drv/timer_qt.c +++ /dev/null @@ -1,129 +0,0 @@ -/** - * \file - * - * - * \version $Id$ - * - * \author Bernardo Innocenti - * - * \brief Low-level timer module for Qt emulator (implementation). - */ -#include /* hptime.t */ - -// Qt headers -#include -#include - - -// The user interrupt server routine -void timer_isr(void); - - -/** - * Singleton class for Qt-based hardware timer emulation. - */ -class EmulTimer : public QObject -{ -private: - Q_OBJECT; - - /// System timer (counts ms since application startup) - QTime system_time; - - /// The 1ms "hardware" tick counter. - QTimer timer; - - /** - * We deliberately don't use RAII because the real hardware - * we're simulating needs to be initialized manually. - */ - bool initialized; - - /// Private ctor (singleton) - EmulTimer() : initialized(false) { } - -public: - /// Return singleton instance - static EmulTimer &instance() - { - static EmulTimer et; - return et; - } - - /// Start timer emulator. - void init() - { - // Timer initialized twice? - ASSERT(!initialized); - - // Record initial time - system_time.start(); - - // Activate timer interrupt - timer.connect(&timer, SIGNAL(timeout()), this, SLOT(timerInterrupt())); - timer.start(1000 / TIMER_TICKS_PER_SEC); - - initialized = true; - } - - /// Return current time in high-precision format. - hptime_t hpread() - { - ASSERT(initialized); - return system_time.elapsed(); - } - -public slots: - void timerInterrupt(void) - { - // Just call user interrupt server, timer restarts automatically. - timer_isr(); - } - -}; - -#include "timer_qt_moc.cpp" - - -/// HW dependent timer initialization. -static void timer_hw_init(void) -{ - // Kick EmulTimer initialization - EmulTimer::instance().init(); -} - -INLINE hptime_t timer_hw_hpread(void) -{ - return EmulTimer::instance().hpread(); -} - -/** Not needed, timer IRQ handler called only for timer source */ -#define timer_hw_triggered() (true) diff --git a/bertos/drv/timer_qt.h b/bertos/drv/timer_qt.h deleted file mode 100644 index 76268fd4..00000000 --- a/bertos/drv/timer_qt.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - * \file - * - * - * \version $Id$ - * - * \author Bernardo Innocenti - * - * \brief Low-level timer module for Qt emulator (interface). - */ -#ifndef DRV_TIMER_QT_H -#define DRV_TIMER_QT_H - -// HW dependent timer initialization - -#define DEFINE_TIMER_ISR void timer_isr(void) -#define TIMER_TICKS_PER_SEC 250 -#define TIMER_HW_CNT (1<<31) /* We assume 32bit integers here */ - -/// Type of time expressed in ticks of the hardware high-precision timer. -typedef unsigned int hptime_t; - -/// Frequency of the hardware high-precision timer. -#define TIMER_HW_HPTICKS_PER_SEC 1000 - -/// Not needed. -#define timer_hw_irq() do {} while (0) - -#endif /* DRV_TIMER_QT_H */ diff --git a/bertos/emul/timer_qt.c b/bertos/emul/timer_qt.c new file mode 100644 index 00000000..6f96da64 --- /dev/null +++ b/bertos/emul/timer_qt.c @@ -0,0 +1,129 @@ +/** + * \file + * + * + * \version $Id$ + * + * \author Bernardo Innocenti + * + * \brief Low-level timer module for Qt emulator (implementation). + */ +#include /* hptime.t */ + +// Qt headers +#include +#include + + +// The user interrupt server routine +void timer_isr(void); + + +/** + * Singleton class for Qt-based hardware timer emulation. + */ +class EmulTimer : public QObject +{ +private: + Q_OBJECT; + + /// System timer (counts ms since application startup) + QTime system_time; + + /// The 1ms "hardware" tick counter. + QTimer timer; + + /** + * We deliberately don't use RAII because the real hardware + * we're simulating needs to be initialized manually. + */ + bool initialized; + + /// Private ctor (singleton) + EmulTimer() : initialized(false) { } + +public: + /// Return singleton instance + static EmulTimer &instance() + { + static EmulTimer et; + return et; + } + + /// Start timer emulator. + void init() + { + // Timer initialized twice? + ASSERT(!initialized); + + // Record initial time + system_time.start(); + + // Activate timer interrupt + timer.connect(&timer, SIGNAL(timeout()), this, SLOT(timerInterrupt())); + timer.start(1000 / TIMER_TICKS_PER_SEC); + + initialized = true; + } + + /// Return current time in high-precision format. + hptime_t hpread() + { + ASSERT(initialized); + return system_time.elapsed(); + } + +public slots: + void timerInterrupt(void) + { + // Just call user interrupt server, timer restarts automatically. + timer_isr(); + } + +}; + +#include "timer_qt_moc.cpp" + + +/// HW dependent timer initialization. +static void timer_hw_init(void) +{ + // Kick EmulTimer initialization + EmulTimer::instance().init(); +} + +INLINE hptime_t timer_hw_hpread(void) +{ + return EmulTimer::instance().hpread(); +} + +/** Not needed, timer IRQ handler called only for timer source */ +#define timer_hw_triggered() (true) diff --git a/bertos/emul/timer_qt.h b/bertos/emul/timer_qt.h new file mode 100644 index 00000000..76268fd4 --- /dev/null +++ b/bertos/emul/timer_qt.h @@ -0,0 +1,57 @@ +/** + * \file + * + * + * \version $Id$ + * + * \author Bernardo Innocenti + * + * \brief Low-level timer module for Qt emulator (interface). + */ +#ifndef DRV_TIMER_QT_H +#define DRV_TIMER_QT_H + +// HW dependent timer initialization + +#define DEFINE_TIMER_ISR void timer_isr(void) +#define TIMER_TICKS_PER_SEC 250 +#define TIMER_HW_CNT (1<<31) /* We assume 32bit integers here */ + +/// Type of time expressed in ticks of the hardware high-precision timer. +typedef unsigned int hptime_t; + +/// Frequency of the hardware high-precision timer. +#define TIMER_HW_HPTICKS_PER_SEC 1000 + +/// Not needed. +#define timer_hw_irq() do {} while (0) + +#endif /* DRV_TIMER_QT_H */