On Thu, 25 Oct 2001, Tony Duell wrote:
[For the software people here, the best analogy I can
think of is the
GOTO statement (or equivalent). It exists. It's often bad practice to use
it. But there are times when it's the right thing to use. Just as (IMHO)
there are times when a monostable is the right thing to use.]
A better analogy for the software people is to assume a variable is
initialized when the program starts. I spent weeks tracking down a
bug which only showed up the second time a program was run. The
debris in memory from the compiler made it happy the first run, but
the leftovers from the first run made the second crash...
One-shots generate a pulse whos timing is based on discrete components,
general a resistor and capacitor, though the resistor may be internal
to the component. With standard components, the resistor is +/- 5% and
the capacitor is +/- 20%. They also change value with age and use,
so one-shots usually are paired with a variable resistor to keep them
tweaked in.
When you are running a board at a few kilohertz, the component
tolerance doesn't hurt you too bad, at a megahertz it's painful,
and at tens of megahertz it just doesn't work. In the good old
days, dedicating 10 flip-flops to generate a pulse was an
expensive answer, now days, (as someone else pointed out)
flip-flops are basically free, but an analog one-shot
(with capacitor) is really huge!
clint