[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Shell scripts



In article <ZgJy4.143$Mom.1048620@dca1-nnrp1.news.digex.net>,
"Frank Townsend" <ftownsen@iamdigex.net> wrote:
>What is N-Key rollover and phantom key?

   Phantom key is a property of matrixed keyboards on computers.  If you
hook up a (topologically) rectangular array of pushbutton switches like:

D       --O-O-O-O
r         | | | |
i     > ==O=O=X=O
v         | | I |
e       --O-O-O-O
          | | I |
        --O-O-O-O
          | | I |
          | | I |
              v

          Sense

and drive only one of the rows with the 'non-idle' voltage, then
you can detect the non-idle voltage on any column where the
corresponding switch in the driven row is being pressed.
(Don't know how well my diagram will come across.  '>' and
'v' and '=' and 'I' show the path of the drive signal, and
'X' shows a pressed button.)

   This design works best when only one button at a time will ever be
pressed, but pressing two buttons at a time might give 'expected'
results.

D   --O-O-O-O       D   --O-O-O-O        D   --O-O-O-O
r     | | | |       r     | | | |        r     | | | |
i > ==X=O=X=O       i > ==O=O=X=O        i > ==O=O=X=O
v     I | I |       v     | | I |        v     | | I |
e   --O-O-O-O       e   --X-O-O-O        e   -=O=O=X=O
      I | I |             | | I |              | | I |
    --O-O-O-O           --O-O-O-O            --O-O-O-O
      I | I |             | | I |              | | I |
      I | I |             | | I |              | | I |
      v   v                   v                    v

      Sense               Sense                Sense

   In the first case, both buttons are sensed as pressed, which they
are.  In the second case, the button in row 3 will not be sensed as
pressed until the third row is driven.  In the third, button 3 is sensed
as the only button pressed in row 2, which is true.  Nice chance for
a short-circuit through the two participating drivers.  Diodes
or resistors are used to prevent disaster.

   The magic happens when 3 buttons in two rows and two columns are
pressed:

D       --O-O-O-O
r         | | | |
i     > ==O=O=X=O
v         | | I |
e       -=X=O=X=O
          I | I |
        --O-O-O-O
          I | I |
          I | I |
          v   v

          Sense

   This shows up as two buttons pressed in the driven row, row 2, which
is not the case.  Button 1, row 2, which fills in the 'rectangle' formed
by the other 3 buttons is a phantom button.

   Prevent this, if you have the budget, by putting diodes in series
with the pushbutton switches, so that a row can't be driven from a
column.  If you don't have the budget, decide that people will learn
not to press three buttons at a time, unless they want to.

        Regards.        Mel.