X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Femul%2Ftimer_qt.c;h=7c2a0c34d23cd9345c6b11a11b633f1ac551c878;hb=42e61240ce8a55e92fe0942fecbee3abe371c507;hp=6f96da646984ce5e69c53e7c135669fd9d3c6f35;hpb=7a88d4d67f907aa2d714378d16b6829440210330;p=bertos.git diff --git a/bertos/emul/timer_qt.c b/bertos/emul/timer_qt.c index 6f96da64..7c2a0c34 100644 --- a/bertos/emul/timer_qt.c +++ b/bertos/emul/timer_qt.c @@ -32,7 +32,7 @@ * * \version $Id$ * - * \author Bernardo Innocenti + * \author Bernie Innocenti * * \brief Low-level timer module for Qt emulator (implementation). */ @@ -88,12 +88,23 @@ public: system_time.start(); // Activate timer interrupt - timer.connect(&timer, SIGNAL(timeout()), this, SLOT(timerInterrupt())); + connect(&timer, SIGNAL(timeout()), SLOT(timerInterrupt())); timer.start(1000 / TIMER_TICKS_PER_SEC); initialized = true; } + void cleanup() + { + // Timer cleaned twice? + ASSERT(initialized); + + timer.stop(); + timer.disconnect(); + + initialized = false; + } + /// Return current time in high-precision format. hptime_t hpread() { @@ -116,10 +127,14 @@ public slots: /// HW dependent timer initialization. static void timer_hw_init(void) { - // Kick EmulTimer initialization EmulTimer::instance().init(); } +static void timer_hw_cleanup(void) +{ + EmulTimer::instance().cleanup(); +} + INLINE hptime_t timer_hw_hpread(void) { return EmulTimer::instance().hpread();