Shop OBEX P1 Docs P2 Docs Learn Events
Question. — Parallax Forums

Question.

PasserbyPasserby Posts: 17
edited 2009-01-09 13:57 in BASIC Stamp
' {$STAMP BS2}
' {$PBASIC 2.5}
' Project: GT60-Phone Systen
' Group members: Chia Kok Kuang 0604912F
' : Song Chan Meng 0607862J
'======================================================================================
a VAR Byte

SETUP:
INPUT 1 'Set PIN 1 to INPUT
INPUT 2 'Set PIN 2 to INPUT
INPUT 3 'Set PIN 3 to INPUT
INPUT 4 'Set PIN 4 to INPUT

BINARYCHECK:

IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN a = 1
IF IN1 = 0 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN a = 2
IF IN1 = 1 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN a = 3
IF IN1 = 0 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN a = 4
IF IN1 = 1 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN a = 5
IF IN1 = 0 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN a = 6
IF IN1 = 1 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN a = 7
IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN a = 8
IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN a = 9
IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN a = 0

DEBUG CR, "Binary Code sense a " a "."

PAUSE 200

GOTO BINARYCHECK

How do I display the value of 'a' in this code?

;]

Comments

  • sylvie369sylvie369 Posts: 1,622
    edited 2009-01-07 03:42
    Try changing

    DEBUG CR, "Binary Code sense a " a "."

    to

    DEBUG CR, "Binary Code sense a ", DEC a,"."
  • PasserbyPasserby Posts: 17
    edited 2009-01-07 03:59
    Thank you.
  • Tracy AllenTracy Allen Posts: 6,662
    edited 2009-01-07 07:17
    Hi Passerby,

    It wasn't part of the question, but you may replace,
    IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN a = 1
    IF IN1 = 0 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN a = 2
    IF IN1 = 1 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN a = 3
    IF IN1 = 0 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN a = 4
    IF IN1 = 1 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN a = 5
    IF IN1 = 0 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN a = 6
    IF IN1 = 1 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN a = 7
    IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN a = 8
    IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN a = 9
    IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN a = 0
    


    all with the much simpler expression...
    a = INS >> 1 & $F
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tracy Allen
    www.emesystems.com
  • PasserbyPasserby Posts: 17
    edited 2009-01-09 02:38
    a = INS >> 1 & $
    



    What does the expression mean?

    ' {$STAMP BS2}
    ' {$PBASIC 2.5}
    ' Project: GT60-Phone Systen
    ' Group members: Chia Kok Kuang 0604912F
    ' : Song Chan Meng 0607862J
    '======================================================================================
    a VAR Byte
    
    SETUP:
    INPUT 1 'Set PIN 1 to INPUT
    INPUT 2 'Set PIN 2 to INPUT
    INPUT 3 'Set PIN 3 to INPUT
    INPUT 4 'Set PIN 4 to INPUT
    
    BINARYCHECK:
    
    a = INS >> 1 & $F
    
    "Binary Code sense a ", DEC a,"."
    
    PAUSE 200
    
    GOTO BINARYCHECK
    



    like this?

    EDIT 2:

    Shouldn't it be:

    a = INS >> 0 & 9
    



    if I want it to count starting from 0, and ends at 9?

    [noparse]:)[/noparse]

    Post Edited (Passerby) : 1/9/2009 6:34:04 AM GMT
  • agfaagfa Posts: 295
    edited 2009-01-09 13:57
    Passerby said...
    What does the expression mean?
    The "INS"·reads·the inputs 0 to 14 as a word, the ">> 1" shifts the value 1 bit to the right, then the "& $F" masks·bits·0 to 3.· The shift converts the values you input from decimal 0 to 18 -to- 0 to 9. The mask ingores bits 4 to 15, by using a bitwise AND "&" with the hex value F.



    Post Edited (agfa) : 1/9/2009 4:18:26 PM GMT
Sign In or Register to comment.