summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/as3525/kernel-as3525.c5
-rw-r--r--firmware/target/arm/as3525/timer-target.h9
2 files changed, 8 insertions, 6 deletions
diff --git a/firmware/target/arm/as3525/kernel-as3525.c b/firmware/target/arm/as3525/kernel-as3525.c
index fd3b219..0f907f6 100644
--- a/firmware/target/arm/as3525/kernel-as3525.c
+++ b/firmware/target/arm/as3525/kernel-as3525.c
@@ -57,11 +57,6 @@ void tick_start(unsigned int interval_in_ms)
int prescale = 1;
int cycles = TIMER_FREQ / 1000 * interval_in_ms;
-#ifdef HAVE_SCROLLWHEEL
- /* let the timer interrupt twice as often for the scrollwheel polling */
- cycles >>= 1;
-#endif
-
while(cycles > 0x10000)
{
phi++;
diff --git a/firmware/target/arm/as3525/timer-target.h b/firmware/target/arm/as3525/timer-target.h
index 21ee6e7..b5cdb74 100644
--- a/firmware/target/arm/as3525/timer-target.h
+++ b/firmware/target/arm/as3525/timer-target.h
@@ -25,7 +25,14 @@ bool __timer_set(long cycles, bool set);
bool __timer_register(void);
void __timer_unregister(void);
-#define TIMER_FREQ (24000000 / 16)
+#ifdef HAVE_SCROLLWHEEL
+/* The scrollwheel is polled every 5 ms (the tick tasks still every 10ms) */
+#define TIMER_DIV (16*2)
+#else
+#define TIMER_DIV (16)
+#endif
+
+#define TIMER_FREQ (24000000 / TIMER_DIV)
#define __TIMER_SET(cycles, set) \
__timer_set(cycles, set)