Hello everyone,
This is my first post here. I would appreciate if you could show my mistakes.
I am trying to form a serial communication between 2 PICs: 18F4620 (Let's call this one A) and 10F202 (B)
18F4620(A) | 10F202 (B)
------------------------
AN0 -------|------ GP0
AN1 -------|------ GP1
PIC A has an LCD attached to it, so I can check what is going on, no such thing on B.
What I am trying to do is send data from A to B, then receive it back: First A -> B then B -> A
For test purposes I sent data from B to A and confirmed it is working.
Here is my code for A (18F4620)
Code:
include "modedefs.bas"
TRISA = 0 'Set PORTA to all outputs - NOT SURE IF THESE ARE REQUIRED
TRISB = 0 'Set PORTB to all outputs
DEFINE OSC 20
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
RW var portb.1:output portb.1:rw=0 ' LCD RW
DEFINE LCD_BITS 4
DEFINE LCD_LINES 4
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
Pause 1000
DEFINE HSER_BAUD 9600
ADCON1 = 15 ' ANALOGS to DIGITAL
SI VAR PORTA.0:input PORTA.0
SO VAR PORTA.1:output PORTA.1
GG VAR WORD:GG=18
TT var byte:TT=4
lcdout $FE,130,"SEROUT:[",#gg,"]"
SERout rout,N9600,[gg]
SERIN SI,1000,loop,N9600,tt
lcdout $FE,214,"SERIN:[",#tt,"]"
end
My code for B (10F202)
Code:
include "modedefs.bas"
TRISA = 0 'Set PORTA to all outputs ' Are these necessary?
TRISB = 0 'Set PORTB to all outputs
DEFINE OSC 4
ADCON1 = 7 ' ANALOGS to DIGITAL ?
ROUT var GPIO.0:output GPIO.0
RIN VAR GPIO.1:INPUT GPIO.1
RR var word
SERIN rin,N9600,rr
pause 1000
SERout rout,N9600,[rr]
END
I am quite new to PicBasic Pro, just put together some stuff I found but it is not working. I tried the above with loops as well, but since SERIN waits there till it receives something it looks fine to me this way.
Thanks in advance
Bookmarks