BS2sx with 8 inputs triggered simultaneously
Archiver
Posts: 46,084
Hello:
I'm developing a BS2sx application that monitors 8 inputs which, most
of the time, are activated simultaneously. My problem is when 1 input
is activated, the BS2 will not "see" the other inputs while it is
busy processing the subroutines of the previous input. I tried
extending the duration of an input using a 555 timer but it is still
not enough in most instances.
Somebody recommends using a Motorola Analog Multiplexer IC MC14051B.
Anybody tested and used this before?
Appreciate any help for this newbie. Thanks.
I'm developing a BS2sx application that monitors 8 inputs which, most
of the time, are activated simultaneously. My problem is when 1 input
is activated, the BS2 will not "see" the other inputs while it is
busy processing the subroutines of the previous input. I tried
extending the duration of an input using a 555 timer but it is still
not enough in most instances.
Somebody recommends using a Motorola Analog Multiplexer IC MC14051B.
Anybody tested and used this before?
Appreciate any help for this newbie. Thanks.
Comments
then process one or more active inputs one at a time.
Suppose you have your 8 inputs on I/O 0 through I/O 7--
triggers VAR BYTE
again:
triggers = INL ; sample all 8 inputs
IF $FF - INL THEN again ; check for any active low inputs
-or-
IF INL THEN again ; check for any active high inputs
check0:
IF triggers.BIT0 THEN check1 ; I/O 0, active low
-or-
IF 1 - triggers.BIT0 THEN check1 ; I/O 0, active high
do whatever if I/O 0 active....
check1:
.
.
.
check7:
IF triggers.BIT7 THEN again ; I/O 7, active low
-or-
IF 1 - triggers.BIT7 THEN again ; I/O 0, active high
do whatever is I/O 7 active....
GOTO again
If this still misses input activations, you could refresh triggers
throughout the loop, but that gets a little more complicated.
Regards,
Steve
robertdelamerced wrote:
> ...My problem is when 1 input is activated, the BS2 will not "see"
> the other inputs while it is busy processing the subroutines of the
> previous input...
other inputs not processed by BS2sx.
--- In basicstamps@y..., "S Parkis" <parkiss@e...> wrote:
> Here's an approach that may help: sample all 8 inputs
simultaneously,
> then process one or more active inputs one at a time.
>
> Suppose you have your 8 inputs on I/O 0 through I/O 7--
>
> triggers VAR BYTE
>
> again:
> triggers = INL ; sample all 8 inputs
> IF $FF - INL THEN again ; check for any active low inputs
> -or-
> IF INL THEN again ; check for any active high inputs
>
> check0:
> IF triggers.BIT0 THEN check1 ; I/O 0, active low
> -or-
> IF 1 - triggers.BIT0 THEN check1 ; I/O 0, active high
> do whatever if I/O 0 active....
>
> check1:
> .
> .
> .
> check7:
> IF triggers.BIT7 THEN again ; I/O 7, active low
> -or-
> IF 1 - triggers.BIT7 THEN again ; I/O 0, active high
> do whatever is I/O 7 active....
> GOTO again
>
> If this still misses input activations, you could refresh triggers
> throughout the loop, but that gets a little more complicated.
>
>
> Regards,
>
> Steve
>
>
> robertdelamerced wrote:
>
> > ...My problem is when 1 input is activated, the BS2 will not "see"
> > the other inputs while it is busy processing the subroutines of
the
> > previous input...