Shop OBEX P1 Docs P2 Docs Learn Events
Output/Input numbers — Parallax Forums

Output/Input numbers

limliklimlik Posts: 23
edited 2009-11-13 13:53 in BASIC Stamp
Is there a way to output numbers on the BS2? Or is serial the only way?

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2009-11-13 03:06
    What do you want to output numbers to? Most I/O devices that a BS2 would use communicate via serial (SERIN / SEROUT). Some communicate via SPI which is also a serial protocol, but usually sends binary information back and forth rather than displayable characters.

    The SEROUT (and its equivalent DEBUG) statement is the only one on the BS2 that has built-in provisions for converting binary values to the equivalent decimal character numbers. Other Stamp models (BS2p/pe/px) have other I/O statements that also have built-in conversion operators (called formatters) for use with parallel LCDs, 1-Wire, and I2C devices.
  • RiJoRiRiJoRi Posts: 157
    edited 2009-11-13 03:08
    You could output them in parallel, using the pins. The format (nibble, byte, word, some weird other combination, binary, hex, BCD) is up to you.

    --Rich

    "More input!" -- Johnny 5 in "Short Circuit"
  • James LongJames Long Posts: 1,181
    edited 2009-11-13 03:08
    Ha,

    Mike beat me to it......

    I wasn't going to be so thorough, but I think he covered it.

    James L

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    James L
    Partner/Designer
    Lil Brother SMT Assembly Services

    Are you addicted to technology or Micro-controllers..... then checkout the forums at Savage Circuits. Learn to build your own Gizmos!
  • limliklimlik Posts: 23
    edited 2009-11-13 03:26
    Ok next question, SEROUT and SERIN example program, my DEBUGIN just has what looks to be odd Russian letters.

    Example one:
    ' SERIN_SEROUT1.BS2
    ' Using two BS2-IC's, connect the circuit shown in the SERIN command
    ' description and run this program on the BASIC Stamp designated as the
    ' Sender. This program demonstrates the use of Flow Control (FPin).
    ' Without flow control, the sender would transmit the whole word "Hello!"
    ' in about 1.5 ms. The receiver would catch the first byte at most; by the
    ' time it got back from the first 1-second PAUSE, the rest of the data
    ' would be long gone. With flow control, communication is flawless since
    ' the sender waits for the receiver to catch up.
    

    ' {$STAMP BS2}
    ' {$PBASIC 2.5}
    

    SO              PIN     1               ' serial output
    FC              PIN     0               ' flow control pin
    

    #SELECT $STAMP
      #CASE BS2, BS2E, BS2PE
        T1200       CON     813
        T2400       CON     396
        T9600       CON     84
        T19K2       CON     32
        T38K4       CON     6
      #CASE BS2SX, BS2P
        T1200       CON     2063
        T2400       CON     1021
        T9600       CON     240
        T19K2       CON     110
        T38K4       CON     45
      #CASE BS2PX
        T1200       CON     3313
        T2400       CON     1646
        T9600       CON     396
        T19K2       CON     188
        T38K4       CON     84
    #ENDSELECT
    

    Inverted        CON     $4000
    Open            CON     $8000
    Baud            CON     T38K4 + Inverted
    

    Main:
      DO
        SEROUT SO\FC, Baud, [noparse][[/noparse]"Hello!", CR]  ' send the greeting
        PAUSE 2500                          ' wait 2.5 seconds
      LOOP                                  ' repeat forever
      END
    

    
    
    Example 2:
    ' SERIN_SEROUT2.BS2
    ' {$PORT COM3}
    ' Using two BS2-IC's, connect the circuit shown in the SERIN command
    ' description and run this program on the BASIC Stamp designated as the
    ' Receiver.  This program demonstrates the use of Flow Control (FPin).
    ' Without flow control, the sender would transmit the whole word "Hello!"
    ' in about 1.5 ms. The receiver would catch the first byte at most; by the
    ' time it got back from the first 1-second PAUSE, the rest of the data
    ' would be long gone. With flow control, communication is flawless since
    ' the sender waits for the receiver to catch up.
    ' {$STAMP BS2}
    ' {$PBASIC 2.5}
    SI              PIN     0               ' serial input
    FC              PIN     1               ' flow control pin
    #SELECT $STAMP
      #CASE BS2, BS2E, BS2PE
        T1200       CON     813
        T2400       CON     396
        T9600       CON     84
        T19K2       CON     32
        T38K4       CON     6
      #CASE BS2SX, BS2P
        T1200       CON     2063
        T2400       CON     1021
        T9600       CON     240
        T19K2       CON     110
        T38K4       CON     45
      #CASE BS2PX
        T1200       CON     3313
        T2400       CON     1646
        T9600       CON     396
        T19K2       CON     188
        T38K4       CON     84
    #ENDSELECT
    Inverted        CON     $4000
    Open            CON     $8000
    Baud            CON     T38K4 + Inverted
    letter          VAR     Byte
    
    Main:
      DO
        SERIN SI/FC, Baud, [noparse][[/noparse]letter]         ' recieve one byte
        DEBUG letter                        ' display on screen
        PAUSE 1000                          ' wait one second
      LOOP                                  ' repeat forever
      END
     
    



    Post Edited (limlik) : 11/13/2009 3:32:24 AM GMT
  • Mike GreenMike Green Posts: 23,101
    edited 2009-11-13 03:32
    First you need to furnish information on what you've got your Stamp connected to and how you've got it configured. When you get garbage, there's something wrong with your signal. Maybe it's the wrong voltage. Maybe it's the wrong speed. Who knows? DEBUGIN works receiving at 9600 Baud through the same I/O port used for programming. It's basically a special case of the SERIN statement with a fixed communications speed and a fixed I/O port.
  • FranklinFranklin Posts: 4,747
    edited 2009-11-13 03:34
    I don't think the debug terminal can handle your baud rate.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - Stephen
  • limliklimlik Posts: 23
    edited 2009-11-13 03:42
    I meant DEBUG not DEBUG in. This is the code provided with the BASIC stamp editor. It wants you to connect pin 1 to pin 1 and pin 0 to pin 0
  • Mike GreenMike Green Posts: 23,101
    edited 2009-11-13 03:54
    The Stamps generally will not work at 38.4KB. The fastest a BS2 will reliably operate at is 9600 Baud. Some of the faster Stamps will operate at 19.2KB. The BS2px can transmit at 38.4KB, but may not be able to receive reliably at that speed.
  • limliklimlik Posts: 23
    edited 2009-11-13 04:39
    Off board topic but was wondering if you knew the answer. If I program a Pic then I load the pic back in and copy the program off of it shouldnt it match up?
  • Mike GreenMike Green Posts: 23,101
    edited 2009-11-13 13:53
    Theoretically, if you read back in the contents of any microprocessor flash memory, it should be identical to what was written during programming. Potential reasons for differences:

    1) The program was written with protection against reading and simply can't be read at all.

    2) The program includes some locations that are "special", used for configuration, and only some bits exist. If you write some invalid values to those locations, they'll read back as something else.
Sign In or Register to comment.