===== 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\","