Index: src/firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c =================================================================== --- src/firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c (revision 26114) +++ src/firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c (working copy) @@ -80,8 +80,11 @@ int repeat = 1; /* assume repeat */ long time = TIMER2_VALUE + current_tick*TIMER_TICK; /* to timer unit */ long v = (time - last_wheel_post); - if (v < WHEEL_LOOP_INTERVAL) /* avoid too frequent updates */ + if (v < WHEEL_LOOP_INTERVAL) { /* avoid too frequent updates */ + if(v < 0) + last_wheel_post = time; return ; + } /* interpolate velocity in timer_freq/timer_unit == 1/s */ if (v) v = TIMER_FREQ / v;