Smoke and mirrors???
Here is a simple example to build on
SEND:
RECEIVE:Code:SEROUT PORTC.4,T2400,[9,3]
Connect VSS and the two PIC pins together.Code:SERIN PORTC.4,T2400,[9],net IF net = 3 THEN DO_SOMETHING
Smoke and mirrors???
Here is a simple example to build on
SEND:
RECEIVE:Code:SEROUT PORTC.4,T2400,[9,3]
Connect VSS and the two PIC pins together.Code:SERIN PORTC.4,T2400,[9],net IF net = 3 THEN DO_SOMETHING
Dave
Always wear safety glasses while programming.
Dave
Will try the operation with only your code...
Can one run SERIN and SEROUT on same pic as I would like to send the received data to hyperterminal and also to the LCD. So would the fol.lowing code be correct then ?
Oh and why did you choose PORTC.4 ? Looking at the pinouts for both pics I see PORTC.6 is TX and PORTC.7 is RX -are these for hardware serial , ie. HSERIN and HSEROUT and should I use them for SERIN and SEROUT or is it better to use PORTC.4 in case I want to use them for HSERIN/OUT later ?
Here's the code
Transmitter PIC (16F887)
Receiver PIC (18F4520)Code:SEROUT PORTC.4,T2400,[9,3]
Smoke and mirrors indeed :-)Code:main: SERIN PORTC.4,T2400,[9],net 'prepare to receive the data from other PIC IF net = 3 LCDOUT "data is",net 'look for the number 3 SEROUT PORTC.5,T2400,[9,3] 'send received data to hyperterminal via max232n to PC end if goto main end
Kind regards
Dennis
Last edited by Dennis; - 26th November 2009 at 21:51.
I went with PORTC4 for no good reason other than to show that the bit banging routines work on most any pin. You are correct about HSERN only working on the hardware pins.
What I can see of your code(using phone) it looks like it should work.
Dave
Always wear safety glasses while programming.
Dave
Thanks a million for the feedback
Will try it right away and feedback asap :-)
Kind regards
Dennis
Hi Dave
Good news and a big thank you !!
It's working...
I am transmitting from 16F887 to 18F4520 and then from 18F4520 to and LCD and to PC serial port.
One tiny issue I have is with the serin command.
It displays a string fine but the variable is always a wingdings character unless I use a lookup ...(see my code below for serout on receiver)
So I have three questions now ....
1. Is there any way to set the serin command to send the variable (net) in the code example so that it appears as the number 3 ?
2.Could you possibly show me a code snippet to accomplish the same thing using debug and also hser please
3. Bearing in mind I want to eventually to accomplish all of this using RF modules, and may decide to use hserin/out ,and all I want to do is relaible transmit 3 or possible 4 bytes, would I have to use an external oscillator or would the internal suffice ?
Kind regards
Dennis
Try
DEC net
OSCs..... Some will not agree but many times times the internal is not stable enough at higher baud rates to be reliable.
Dave
Always wear safety glasses while programming.
To set DEBUG up
SendCode:DEFINE DEBUG_MODE 0 ' Debug sending TRUE serial data DEFINE DEBUG_REG PORTC ' Debug Port = PortC DEFINE DEBUG_BIT 4 ' Debug.bit = PortC.4 DEFINE DEBUG_BAUD 2400 ' Default baud rate = 2400
ReceiveCode:DEBUG 9,3
The same syntax works for HSERIN/OUTCode:DEBUGIN [WAIT("9"),DEC net]
Dave
Always wear safety glasses while programming.
Bookmarks