I very much expect that a USB joystick would solve the problem. The game port
is a casette tape period device.
On Wed, May 31, 2000 at 12:28:02PM -0700, Basham, Richard R wrote:
> I am not familiar with your desired final product but I would mention that joysticks
>usually have resistive potentiometers and therefore could be used to feed the input
>to an ADC board. This would probably get around some of the hardware/driver issues
>associated with the inexpensive I/O architecture of the game port. Obviously, this
>reduces the generic PC portability and increases the complexity.
>
> I wonder how using the game port differs from the same joystick with USB? Anyone?
>
> Just a thought,
> Rich
>
> > ----------
> > From: [EMAIL PROTECTED][SMTP:[EMAIL PROTECTED]]
> > Sent: Wednesday, May 31, 2000 10:04 AM
> > To: Andrew Price
> > Cc: Tomasz Motylewski; [EMAIL PROTECTED]
> > Subject: Re: [rtl] RTLinux and joystick
> >
> > On Wed, May 31, 2000 at 02:56:56PM +1000, Andrew Price wrote:
> > > I ran a very small real time application whose sole purpose was to
> > > toggle
> > > a bit of the parallel port every 100us.
> > >
> > > In the long term I will use this to schedule events etc etc..
> > >
> > > The application I am working on also has need for the joystick.
> > >
> > > When I ran up the current joystick driver for linux, and in particular
> > > the
> > > joystick driver for the microsoft (cringe) sidewinder it caused the
> > > system
> > > to lock up. If I slowed the rate of the real time process. to one toggle
> > > every 2ms
> > > the joystick operates normally.
> > >
> > >
> > > I used the example program for latency testing for the parallel port
> > > along with
> > > 'jstest' an example that is packaged with the current joystick driver
> > > for linux.
> > >
> > >
> > > Can anyone explain why the high rate of the real time process affects
> > > what the joystick,
> > > a common garden variety process is doing?
> >
> > A quick look at the sidewinder driver shows this amusing comment:
> >
> > /*
> > * js_sw_read_packet() is a function which reads either a data packet, or an
> > * identification packet from a SideWinder joystick. Better don't try to
> > * understand this, since all the ugliness of the Microsoft Digital
> > * Overdrive protocol is concentrated in this function. If you really want
> > * to know how this works, first go watch a couple horror movies, so that
> > * you are well prepared, read US patent #5628686 and then e-mail me,
> > * and I'll send you an explanation.
> > * Vojtech <[EMAIL PROTECTED]>
> > */
> >
> >
> > and then this cli protected code:
> > do {
> > bitout--;
> > u = v;
> > v = inb(io);
> > } while (!(~v & u & 0x10) && (bitout > 0)); /* Wait for first
>falling edge on clock */
> >
> > So it tries to turn off interrupts and do a busy wait for a falling edge. I bet
>these
> > last for near millisecond periods -- with a 100us RT thread interrupting the device
> > is not going to work well at all.
> >
> > Sorry. One solution is to get a better joystick. Another is to run on a SMP board.
> >
> >
> >
> >
> > --
> > ---------------------------------------------------------
> > Victor Yodaiken
> > FSMLabs: www.fsmlabs.com www.rtlinux.com
> > FSMLabs is a servicemark and a service of
> > VJY Associates L.L.C, New Mexico.
> >
> > -- [rtl] ---
> > To unsubscribe:
> > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> > ---
> > For more information on Real-Time Linux see:
> > http://www.rtlinux.org/rtlinux/
> >
--
---------------------------------------------------------
Victor Yodaiken
FSMLabs: www.fsmlabs.com www.rtlinux.com
FSMLabs is a servicemark and a service of
VJY Associates L.L.C, New Mexico.
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/