Hi Darrel
Problem seems to be solved now.
And the solution was in the very problem itself ...passing the variable !!
I created a new variable called datatx
and then after the displaying myvar to LCD with LCDOUT,
all I did was let datatrx = myvar
then SEROUT myvar
And whammo it works :-) YAY ...!
Thanks so much for all your help !
Here's the code for reference and for anyone who might find it useful
It captures a keypress, diplays it on the LCD and send the captured keypress via SEROUT.
Kind regards
Dennis
Code:
'*************************************
'Keypress display on LCD and TX to wherever
'*************************************
'Ocsillator selections here
OSCCON = $70 'Int CLK 8MHz
OSCTUNE.6 = 1 'PLL 4x
ADCON1= %00001111 '$0F = disable A/D converter
cmcon = 7
INTCON2.7 = 0 'switch pull-ups ON
'END of oscillator selections
'timer/oscillator defines
DEFINE OSC 32 '4x 8MHz
'END of timer/oscillator defines
'Port IO directions and presets for port pins begin here
'TRISX = %76543210 << tris bit order numbering
'TRISA = %11111111 'All pins are outputs
'// Define port pins as inputs and outputs ...
TRISA = %00000000 'example only - TRISB = %00001111 ;Make B4-B7 outputs, B0-B3 inputs,
TRISB = %11111111 'for 4x4 keypad all input
TRISC = %10000000
TRISD = %00000000
TRISE.0 = 0
TRISE.1 = 0
TRISE.2 = 0
'End of Port IO directions and presets for port pins begin here
'variables begin here
myvar var byte
datatx var byte
datarx var byte
'end of variables
'LCD defines begin here
DEFINE LCD_BITS 4 'defines the number of data interface lines (4 or 8)
DEFINE LCD_DREG PORTD 'defines the port where data lines are connected to
DEFINE LCD_DBIT 4 'defines the position of data lines for 4-bit interface (0 or 4)
DEFINE LCD_RSREG PORTD 'defines the port where RS line is connected to
DEFINE LCD_RSBIT 2 'defines the pin where RS line is connected to
DEFINE LCD_EREG PORTD 'defines the port where E line is connected to
DEFINE LCD_EBIT 3 'defines the pin where E line is connected
'DEFINE LCD_RWREG 0 'defines the port where R/W line is connected to (set to 0 if not used)
'DEFINE LCD_RWBIT 0 'defines the pin where R/W line is connected to (set to 0 if not used)
DEFINE LCD_COMMANDUS 2000 'defines the delay after LCDOUT statement
DEFINE LCD_DATAUS 200 'delay in micro seconds
'END of LCD DEFINES
'includes begin here
INCLUDE "modedefs.bas"
include "c:\pbp\samples\keypad.bas"
'end of includes
'Keypad code begins here
DEFINE KEYPAD_ROW 4 ' 4 ROW keypad
DEFINE KEYPAD_ROW_PORT PORTB ' ROW port = PORTB
DEFINE KEYPAD_ROW_BIT 0 ' ROW0 = PORTB.4
DEFINE KEYPAD_COL 4 ' 4 COL keypad
DEFINE KEYPAD_COL_PORT PORTB ' COL port = PORTB
DEFINE KEYPAD_COL_BIT 4 ' COL0 = PORTB.0
DEFINE KEYPAD_DEBOUNCEMS 200 ' debounce delay = 200 mSec
DEFINE KEYPAD_AUTOREPEAT 1 ' use auto-repeat feature
'end keypad code
'Main code begins here
Pause 2000 ' Wait for LCD to startup
start:
'read keypress variable
@ READKEYPAD _myvar
LOOKUP myvar,[0,"123A456B789C*0#D"],myvar
'lcdout $fe, 1 'clear lcd screen
'pause 2000
lcdout myvar 'display keypress variable myvar
datatx = myvar '<<<<here's the solution :-)
lcdout datatx
'transmit section
'THE PROBLEM LINE >>> SerOut PORTC.6,T2400,["the key pressed is ",datatx]
SerOut PORTC.6,T2400,["the key pressed is ",datatx] 'SerOut PinNumber2,T2400,DataRec (FIXED!!
pause 1000
'transmit section ends
'receive section
'SerIn PORTC.7,T2400,DataRX
'LCDOUT datarx 'displays data received from serin datarx
'receive section ends
lcdout $fe,1 'clear lcd screen
goto start
'End of all code
Bookmarks