Sparkfun serial LCD backpack code
Buck Rogers
Posts: 2,208
Hello!
Ron C, I have a question about your code for the stamp2. It reads as follows:
Is it my understanding that the majority of those entries are to be used for one specific purpose, that of confirming that the device can be seen by the selected BS2? (and of course the chosen display)
Reason being is that I now want to move towards applying the display and backpack combo to respond to different logic applications.
Ideally, I can now stick my logic in between the stamp and the two devices, but I would like your opinion.
The code block that describes initializing the backpack seems to be an excellent idea. Yet every time I've used it, all I would do is just connect it to my logic, and then from there, connect the "actuator" (in this case just an action) to the logic--Which is where the stamp comes in.:idea::smilewinkgrin:
Ron C, I have a question about your code for the stamp2. It reads as follows:
' {$STAMP BS2}
' {$PBASIC 2.5}
lcd_cmd CON $FE 'command prefix
lcd_cmd2 CON $7C 'special command prefix
clrLCD CON $01 'Clear entire LCD screen
displayOff CON $08 'Display off
displayOn CON $0C 'Display ON
noCurs CON $0C 'Make cursor invisible
ulCurs CON $0E 'Show underline cursor
blkCurs CON $0D 'Show blinking block cursor
curpos CON $80 'set cursor + position (row 1=0 TO 15, row 2 = 64 TO 79)
scrollRight CON $1C
scrollLeft CON $18
curRight CON $14
curLeft CON $10
#SELECT $STAMP ' Select Baud constants
#CASE BS2, BS2E, BS2PE
T1200 CON 813
T2400 CON 396
T4800 CON 188
T9600 CON 84
T19K2 CON 32
#CASE BS2SX, BS2P
T1200 CON 2063
T2400 CON 1021
T4800 CON 500
T9600 CON 240
T19K2 CON 110
#CASE BS2PX
T1200 CON 3313
T2400 CON 1646
T4800 CON 813
T9600 CON 396
T19K2 CON 188
#ENDSELECT
Inverted CON $4000 'Value for inverted serial format
Baud CON T9600 '+ Inverted 8,N,1 inverted
LCD CON 4
i VAR Byte
SEROUT LCD,Baud,[lcd_cmd, displayOn]
SEROUT LCD,Baud,[lcd_cmd, clrLCD]
SEROUT lcd,Baud,[lcd_cmd, curpos+6, "AAA", lcd_cmd, curpos+68, "BBBBB"]
SEROUT lcd,Baud,[lcd_cmd2, $0A] 'ctrl-j Save Splash screen
PAUSE 2000
SEROUT LCD,Baud,[lcd_cmd, clrLCD, noCurs]
SEROUT LCD,Baud,[lcd_cmd, curpos + 0,"Test line 1"]
PAUSE 500
SEROUT LCD,Baud,[lcd_cmd, curpos + 64,"Test line 2"]
PAUSE 1000
FOR i = 0 TO 5
SEROUT LCD,Baud,[lcd_cmd, scrollRight]
PAUSE 500
NEXT
FOR i = 0 TO 5
SEROUT LCD,Baud,[lcd_cmd, scrollLeft]
PAUSE 500
NEXT
'Backlight values: 128-157
SEROUT LCD,Baud,[lcd_cmd2, $8C] '40% backlight
PAUSE 3000
SEROUT LCD,Baud,[lcd_cmd2, $96] '73% backlight
PAUSE 3000
SEROUT LCD,Baud,[lcd_cmd2, $9D] '100% backlight
PAUSE 1000
SEROUT LCD,Baud,[lcd_cmd2, $80] 'backlight off
SEROUT LCD,Baud,[lcd_cmd, displayOff]
END ' Finished.
Is it my understanding that the majority of those entries are to be used for one specific purpose, that of confirming that the device can be seen by the selected BS2? (and of course the chosen display)
Reason being is that I now want to move towards applying the display and backpack combo to respond to different logic applications.
Ideally, I can now stick my logic in between the stamp and the two devices, but I would like your opinion.
The code block that describes initializing the backpack seems to be an excellent idea. Yet every time I've used it, all I would do is just connect it to my logic, and then from there, connect the "actuator" (in this case just an action) to the logic--Which is where the stamp comes in.:idea::smilewinkgrin:

Comments
The Sparkfun serial LCDs and backback are RS232 devices that allow a BASIC STAMP (or other microcontroller or device) to send data to the LCD using RS232 protocol (SEROUT on the Basic Stamp).
The constants merely make it easier to write program code instructing the LCD what to do e.g. Clear the screen, move the cursor, etc.
Most commands need to be proceeded by the 0xFE command prefix.
For example to clear the display your BS2 instruction would be
SEROUT LCD,Baud,[lcd_cmd, clrLCD]
where LCD is the BS2 pin number the display is wired to, and BAUD is the SEROUT mode (e.g. 84 for 9600 bps - see BS2 serout instruction in manual).
You can select the cursor type and position the cursor before sending text to the display.
The datasheet gives you all the details about the control codes
http://www.sparkfun.com/datasheets/LCD/SerLCD_V2_5.PDF
Hello!
Actually Ron, I believe most of it flew past you, but you did indeed get the meaning behind it. :roll: My big problem is exactly what you've outlined. I believe I can translate those ideas into everything else I need to do.
Most of the problem filters down to simply parts selection.