I am using a miniature trackball TBWB2A00 (datasheet attached) for one of my console designs. I am using PIC18F4450 which takes the raw switch inputs from this trackball and sends it to the PC as an USB optical mouse.
The issue is the trackball has a click-click action as it is actually internally mechanical switches. So the user to browse a 1024 X 768 display would mean a huge amount of time and clicks making it cumbersome to use. So we thought of providing acceleration as in Windows XP - that is, when the user moves fast the cursor should also move fast.
But unfortunately I have not been able to do this. Following things I have tried out:
1) I have tried to sense the time interval between successive movements to get the acceleration but because the time interval is huge, I am unable to get any effect out of this.
2) I have tried to use WIndows acceleration adjustments (through registry) but this also has not helped.
Is there a good logic for implementing this through embedded code or through Windows XP?