Serial LCD Help
Ttailspin
Posts: 1,326
This is probably going to be one of those "this stuff is so easy, it's hard" kind of questions,
I am using..
Serial LCD 2X16 using the Serial_LCD_Demo.spin from the OBEX, work's just fine,
The LCD Demo uses FullDuplexSerial
Nintendo64 Joystick using the N64_v1.2.spin from the OBEX. also work's just fine
The N64 test uses TV_Text.
FullDuplexSerial and TV_Text have the same public method block's named "PUB bin"
Both PUB bin's are identical.
It Looked like it would be a no brainer to display Joystick button states on the LCD using FullDuplexSerial.
But, I am missing something, it is not working as expected, and I am not sure what I am looking for.
All I get is 0's for the Joystick states displayed on the LCD.
I can make the display look like I want, but the Button states never change.
AB LR Z S
00 00 0 0 <<< these binary numbers don't change when I push the buttons on the Joystick.
Here is what I am trying to make work..
I am using..
Serial LCD 2X16 using the Serial_LCD_Demo.spin from the OBEX, work's just fine,
The LCD Demo uses FullDuplexSerial
Nintendo64 Joystick using the N64_v1.2.spin from the OBEX. also work's just fine
The N64 test uses TV_Text.
FullDuplexSerial and TV_Text have the same public method block's named "PUB bin"
Both PUB bin's are identical.
It Looked like it would be a no brainer to display Joystick button states on the LCD using FullDuplexSerial.
But, I am missing something, it is not working as expected, and I am not sure what I am looking for.
All I get is 0's for the Joystick states displayed on the LCD.
I can make the display look like I want, but the Button states never change.
AB LR Z S
00 00 0 0 <<< these binary numbers don't change when I push the buttons on the Joystick.
Here is what I am trying to make work..
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
TX_PIN = 15
BAUD = 19_200
OBJ
LCD : "FullDuplexSerial.spin"
N64 : "N64_v1.2"
PUB Main
LCD.start(TX_PIN, TX_PIN, %1000, 19_200) 'Set pins, mode, and buad rate for LCD
waitcnt(clkfreq / 100 + cnt) 'Pause for FullDuplexSerial.spin to initialize
LCD.tx(22) 'Turn on Display
LCD.tx(17) 'Turn on Backlight
repeat
LCD.tx(12) 'Form Feed, cursor to Row_0-Column_0, clear Display, must pause 5ms
waitcnt(clkfreq / 100 + cnt) 'Pause for minimum of 5ms to allow LCD to settle
LCD.str(string("AB LR Z S ")) 'Print Button Labels on top row
LCD.tx(148) 'Move cursor to Posisition :Row1, Column0
LCD.bin(N64.A, 1) 'Display state of Joystick button :A
waitcnt(clkfreq / 50 + cnt) 'Pause
LCD.bin(N64.B, 1) 'Display state of Joystick button :B
LCD.tx(9) 'Move cursor right one
waitcnt(clkfreq / 50 + cnt) 'Pause
LCD.bin(N64.L, 1) 'Display state of Joystick button :L
waitcnt(clkfreq / 50 + cnt) 'Pause
ect..ect..
Thank You for Your time in this.
Comments
I am telling You, this stuff is so easy, it's hard...
Well that was fun...
You may now continue with Your regular scheduled programing, thank you, please keep the snickering to a minimum please...
OBC