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