===== Bitlash Printing =====
This page documents the Print command and its options.
----
==== Basic Printing: a list of items ====
The simplest form of the print command causes bitlash to print out a bunch of numeric values separated by spaces, followed by a newline:
> print 1, 2+2, 1<<3
1 4 8
>
The print command can print string constants as well as numeric expressions, as you may recall from the Hello World example:
> print "Hello, world!", 123
Hello, world! 123
To suppress the blank and automatic end of line, print a single value followed by the comma, like this:
> print "Time:", // Prints Time: with no trailing blank or newline
----
==== Printing special characters ====
The rules for special characters are similar to C. See [[Language]] for details on constructing string constants with arbitrary ascii characters.
----
==== Hex, binary, and raw byte output ====
You can specify a modifier to produce several different output types by appending ":spec" to any expression in a print statement. Perhaps an example is quickest:
> print 33, 33:x, 33:b, 33:y, 33:*
33 21 100001 ! *********************************
Here is a mapping to the Arduino equivalents for hex, binary, and raw byte output:
^to print: ^Bitlash ^Arduino ^
| print hex | print value:x | Serial.print(value, HEX)|
|send ascii byte value | print value:y | Serial.print(value, BYTE)|
|print binary | print value:b | Serial.print(value, BIN)|
----
==== Printing Bars ====
You can print a bar of N '*' characters using the :* format specifier, as shown in the example above. Any single-byte symbol will work (+-*/<>%:).
Here's a cheap, low-res oscilloscope on pin A3 with adjustable temporal resolution:
> while 1: print map(a3,0,1024,10,50):*; delay(5)
----
==== Serial Output to Alternate Pins: print #n:... ====
Bitlash includes a software serial output capability which supports transmitting on any available output pin at a user-specified baud rate. This makes it straightforward to integrate additional serial devices with an Arduino.
You send output to an alternate output pin using the "print #n:" construct, where "n" is the Arduino pin number designator for the desired the output pin:
> print #6:"EMERGENCY DESTRUCT SEQUENCE ALPHA CONFIRMED"
By default bitlash will send output at 9600 baud. If you require a different baud rate use the baud function:
> baud(4,4800) // set baud on pin 4 to 4800
> print #4:"ATZ" // send some stuff on pin 4
Note: print #n: is blocking: background macros will pause while output is being printed.
== Example: Clear the Screen on Sparkfun Serial LCD ==
Here is an example combining the use of printing to an arbitrary pin, printing special characters, and (importantly!) suppressing the inter-item and inter-line spacing that bitlash would normally generate. Assume the serial LCD is on pin 4 and that all pin setup and baud rate initialization has been performed. Then this macro will clear the screen:
cls:="print #4:\"\xfe\x01\","