Hi guys,

I'm starting to play with Rx/Tx modules.
I've bought a couple of Cy2198TR-a modules ( http://www.sure-electronics.net/rf,audio/GP-GC010.pdf ) and connected them to a couple of 16F88 pics.
I was able to communicate from pic to module, choose the channel and when transmitting/receiving i can see the Busy led on on both of them.

The transmitter is sending a simple message ( a 4 digit value ) every second.
The problem is the receiver side.
Sometimes skips messages, sometimes shows the entire message ( 4 digit value ), sometimes shows just on or two digits of the message.

Here is the code for the RX and TX:

RX
Code:
    CCP1CON = %00000000         ' Disable CCP
    SSPCON.5 = 0                ' Disable SSP Module
    CMCON = %00000111           ' comparator off

TRISA=%00010001
TRISB=%00000111
   
'*****************************************************************************
'DEFINEs
'*****************************************************************************
 
@ DEVICE PIC16F88, HS_OSC
@ DEVICE PIC16F88, MCLR_OFF
@ DEVICE PIC16F88, PROTECT_OFF

DEFINE OSC 8

@ DEVICE PIC16F88, CPD_OFF
@ DEVICE PIC16F88, LVP_OFF
@ DEVICE PIC16F88, BOD_OFF
@ DEVICE PIC16F88, PWRT_OFF
@ DEVICE PIC16F88, WDT_OFF
@ DEVICE PIC16F88, CCPMX_OFF

'*****************************************************************************
'ADC

DEFINE ADC_BITS 10 ' Set number of bits in result ( 8 or 10 bits )
DEFINE ADC_CLOCK 3 ' Set clock source (3=rc)
DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS

'*****************************************************************************

ANSEL=%00000001 
ADCON1=%10000000 'no Vref - Right Justify 
ADCON0=%11000001  
     
'*****************************************************************************
' DEFINE LCD pins

DEFINE  LCD_DREG        PORTB
DEFINE  LCD_DBIT            4

DEFINE  LCD_RSREG       PORTA
DEFINE  LCD_RSBIT           3

DEFINE  LCD_EREG        PORTA
DEFINE  LCD_EBIT            2

DEFINE  LCD_BITS            4

DEFINE LCD_LINES 4              
DEFINE LCD_COMMANDUS 2000       
DEFINE LCD_DATAUS 50          
'*****************************************************************************
'debug defines

INCLUDE "modedefs.bas" 
DEFINE DEBUG_REG PORTB  
DEFINE DEBUG_BIT 3
DEFINE DEBUG_BAUD 19200
DEFINE DEBUG_MODE 1
DEFINE DEBUGIN_REG PORTB
DEFINE DEBUGIN_BIT 2
DEFINE DEBUGIN_BAUD 19200
DEFINE DEBUGIN_MODE 1

'*****************************************************************************
'PINS
 
adc     var          PORTA.0  'analog input
in      var          PORTA.1  'n/a
A2      var          porta.2  'lcd
A3      var          porta.3  'lcd
A4      var          porta.4  'n/a
pgm     var          porta.5  'n/a
RsBit   var          porta.6  'xtal
EBit    var          porta.7  'xtal
BUT1    var          portb.0  'button
stat    var          portb.1  'reserved for buSY
led2    var 	     PORTB.2  ' in
nc      var 	     PORTB.3  ' out
lcd4    var          portb.4  'Data pin for LCD         
lcd5    var          portb.5  'Data pin for LCD
lcd6    var          portb.6  'Data pin for LCD  
lcd7    var          portb.7  'Data pin for LCD  

'*****************************************************************************
'variables

media    var        WORD	'average
ME       var        WORD	'
ps4      var        WORD	'
value    var        WORD	'value received
ra       var        word
MYDATA   var        word

'contants
Row1  CON 128 'constant for LCD line1
Row2  CON 192 'constant for LCD line2
Row3  CON 148 'comstant for LCD line3
Row4  CON 212 'constant for LCD line4
cl    con 254 'constant for LCD clear line

clear
'*****************************************************************************

INCLUDE "lcdbarIN.bas" 
DEFINE  LCD4X20  1
 
'***********************************************************
INIT:
pause 400
lcdout $fe,1,"  TX demo " 
lcdout $fe,$c0,"     ...        "
pause 1500
debug $55
if but1=1 then
goto chann
endif

man:
high pgm        
me=0
for ra=0 to 15
adcin adc,value
pause 50
me=me+value
next ra
me=me/16
media=me
media=(media*/5000)>>2
lcdout cl,row1," adc ", dec value 
lcdout cl,row2," average  ", dec media


transmit:
lcdout cl,row4,"transmiting - ",dec value ,"   "'change B1 for B2
debug $55,"ok", dec value dig 3, dec value dig 2, dec value dig 1, dec value dig 0

goto man

chann:
low pgm
pause 50
while but1=1
debug $af, $00
wend
goto man

end
and the RX
Code:
    CCP1CON = %00000000         ' Disable CCP
    SSPCON.5 = 0                ' Disable SSP Module
    ANSEL = %00000000           ' digital mode
    CMCON = %00000111           ' comparator off 

TRISA=%00111100
TRISB=%00000111
   
'*****************************************************************************
'DEFINEs
'*****************************************************************************
 
@ DEVICE PIC16F88, HS_OSC
@ DEVICE PIC16F88, MCLR_OFF
@ DEVICE PIC16F88, PROTECT_OFF

DEFINE OSC 8

@ DEVICE PIC16F88, CPD_OFF
@ DEVICE PIC16F88, LVP_OFF
@ DEVICE PIC16F88, BOD_OFF
@ DEVICE PIC16F88, PWRT_OFF
@ DEVICE PIC16F88, WDT_OFF
@ DEVICE PIC16F88, CCPMX_OFF

'*****************************************************************************
' DEFINE LCD pins

DEFINE  LCD_DREG        PORTB
DEFINE  LCD_DBIT            4
DEFINE  LCD_RSREG       PORTA
DEFINE  LCD_RSBIT           1
DEFINE  LCD_EREG        PORTA
DEFINE  LCD_EBIT            0
DEFINE  LCD_BITS            4
DEFINE LCD_LINES 4              
DEFINE LCD_COMMANDUS 2000      
DEFINE LCD_DATAUS 50            
'*****************************************************************************
'debug defines

INCLUDE "modedefs.bas" 
DEFINE DEBUG_REG PORTB  
DEFINE DEBUG_BIT 3
DEFINE DEBUG_BAUD 19200
DEFINE DEBUG_MODE 1
DEFINE DEBUGIN_REG PORTB
DEFINE DEBUGIN_BIT 2
DEFINE DEBUGIN_BAUD 19200
DEFINE DEBUGIN_MODE 1

'*****************************************************************************
'PINS
 
a1      var          PORTA.0  'lcd
a2      var          PORTA.1  'lcd
led     var          porta.2  'n/a
A3      var          porta.3  'n/a
A4      var          porta.4  'n/a
pgm     var          porta.5  'frequency
RsBit   var          porta.6  'xtal
EBit    var          porta.7  'xtal
BUT1    var          portb.0  'button1
stat    var          portb.1  'reserved for buSY
led2    var 	     PORTB.2  ' in
nc      var 	     PORTB.3  ' out
lcd4    var          portb.4  'Data pin for LCD         
lcd5    var          portb.5  'Data pin for LCD
lcd6    var          portb.6  'Data pin for LCD  
lcd7    var          portb.7  'Data pin for LCD  

'*****************************************************************************
'variables


media    var        WORD	'average
ME       var        WORD	'
ps4      var        WORD	'
value    var        WORD	'
ra       var        word
MYDATA   var        word

'contants
Row1  CON 128 'constant for LCD line1
Row2  CON 192 'constant for LCD line2
Row3  CON 148 'comstant for LCD line3
Row4  CON 212 'constant for LCD line4
cl    con 254 'constant for LCD clear line


clear
'*****************************************************************************

INCLUDE "lcdbarIN.bas" 
DEFINE  LCD4X20  1
 
'***********************************************************
INIT:
pause 400
lcdout $fe,1,"  RX demo " 
lcdout $fe,$c0,"     ...        "
pause 1500
if but1=1 then
goto chann
endif

man:
high pgm
me=0

lcdout cl,row1," adc ", dec value 
lcdout cl,row2," media  ", dec media


rec:
debugin [wait ("ok"),dec4 MYDATA]      
lcdout cl,row4,"                    "
lcdout cl,row3,"                    "
lcdout cl,row4, "received - ",DEC MYDATA

goto REC

chann:
low pgm
pause 50
while but1=1
debug $af, $00
wend
goto man

end
Any ideas for this to occur ?

I thank in advance