Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Oct 1997 15:08:38 -0400 (EDT)
From:      Peter Dufault <dufault@hda.com>
To:        mdean@best.com (mdean)
Cc:        hackers@freebsd.org
Subject:   Re: A world of unexplored pain.
Message-ID:  <199710061908.PAA12422@hda.hda.com>
In-Reply-To: <Pine.SGI.3.95.971005115758.2752B-100000@shellx.best.com> from mdean at "Oct 5, 97 12:21:38 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> me to use some dedicated controller board) if that was all I wanted...

I did something like this in 386bsd days for a combustion experiment.

I ran the clock tick at 100 times HZ, and called an outside of the
OS ticker at that rate and the OS every 100 times.  This ticker
was driving a stepper motor controlled throttle which it was
microstepping.  Every N times (I think about 5 seconds, so
we're talking about N=500) it would also calculate a servo update for
the throttle from sensors read in an A-D board.  I used the clock
on the A-D board to watch for lost ticks by setting it for something
like (N + fudge) times the tick interval and verifying it wasn't
pending when I got to the control.  Communication with this "virtual
board" was via a regular device driver that could set up profile
schedules and so on via ioctls.

We could telnet into the box, display status in a remote xterm,
etc, without screwing things up.  It was a hack but worked well.

Things have grown a lot since then.

-- 
Peter Dufault (dufault@hda.com)   Realtime development, Machine control,
HD Associates, Inc.               Safety critical systems, Agency approval



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710061908.PAA12422>