From d1b0ee9f046ea3ee9879bb7f35e3795d6efe08c5 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Wed, 3 Jun 2009 11:35:56 +0000 Subject: [PATCH] Change the timer interrupt setup so that TIMER_FREQ is changed for HAVE_SCROLLWHEEL (which read the scrollwheel between tick tasks too) instead of the generated variable. No functional change. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21177 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/as3525/kernel-as3525.c | 5 ----- firmware/target/arm/as3525/timer-target.h | 9 ++++++++- 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 fd3b219e64..0f907f61e3 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 21ee6e7804..b5cdb74e85 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)