projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Try to find the type of the parameter automatically if it isn't defined manually
[bertos.git]
/
bertos
/
emul
/
timer_qt.c
diff --git
a/bertos/emul/timer_qt.c
b/bertos/emul/timer_qt.c
index 204b22dc40e2e4796da19a15ec325af1713e14a1..0b24178db4048cb90601e4a5c641f338e86442db 100644
(file)
--- a/
bertos/emul/timer_qt.c
+++ b/
bertos/emul/timer_qt.c
@@
-42,6
+42,10
@@
#include <QtCore/QDateTime>
#include <QtCore/QTimer>
#include <QtCore/QDateTime>
#include <QtCore/QTimer>
+#if CONFIG_KERN_IRQ
+#include <kern/irq.h>
+#endif
+
// The user interrupt server routine
void timer_isr(void);
// The user interrupt server routine
void timer_isr(void);
@@
-87,13
+91,28
@@
public:
// Record initial time
system_time.start();
// Record initial time
system_time.start();
+ #if CONFIG_KERN_IRQ
+ irq_register(SIGALRM, timer_isr);
+ #endif
+
// Activate timer interrupt
// 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;
}
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()
{
/// Return current time in high-precision format.
hptime_t hpread()
{
@@
-105,7
+124,11
@@
public slots:
void timerInterrupt(void)
{
// Just call user interrupt server, timer restarts automatically.
void timerInterrupt(void)
{
// Just call user interrupt server, timer restarts automatically.
- timer_isr();
+ #if CONFIG_KERN_IRQ
+ irq_entry(SIGALRM);
+ #else
+ timer_isr();
+ #endif
}
};
}
};
@@
-116,10
+139,14
@@
public slots:
/// HW dependent timer initialization.
static void timer_hw_init(void)
{
/// HW dependent timer initialization.
static void timer_hw_init(void)
{
- // Kick EmulTimer initialization
EmulTimer::instance().init();
}
EmulTimer::instance().init();
}
+static void timer_hw_cleanup(void)
+{
+ EmulTimer::instance().cleanup();
+}
+
INLINE hptime_t timer_hw_hpread(void)
{
return EmulTimer::instance().hpread();
INLINE hptime_t timer_hw_hpread(void)
{
return EmulTimer::instance().hpread();