CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

communicate PIC to PIC from tx to rx in xbee

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
fazreen



Joined: 18 Oct 2012
Posts: 10

View user's profile Send private message

communicate PIC to PIC from tx to rx in xbee
PostPosted: Wed Oct 24, 2012 9:39 pm     Reply with quote

Someone can help me how to communicate PIC TO PIC by xbee ? I had done communicate pic to pic from tx to rx using wire. But now I want communicate without use wire but use xbee. What's the program that I can use it ?
asmallri



Joined: 12 Aug 2004
Posts: 1635
Location: Perth, Australia

View user's profile Send private message Send e-mail Visit poster's website

Re: communicate PIC to PIC from tx to rx in xbee
PostPosted: Thu Oct 25, 2012 1:55 am     Reply with quote

fazreen wrote:
Someone can help me how to communicate PIC TO PIC by xbee ? I had done communicate pic to pic from tx to rx using wire. But now I want communicate without use wire but use xbee. What's the program that I can use it ?


It depends. If you are using something like an XBeePro then these have two modes of operation, one where you use them as a point-to-point link and the other where you have a one-to-many or many-to-many type of operation. If you are using them for point-to-point then you just use the XBeePro as if it were a piece of wire.

To set the mode of the device you can you the standard tool provided by the company that makes the XBeePro (forgotten the name of the app) or you can sent it "at" style commands.
_________________
Regards, Andrew

http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!!
gpsmikey



Joined: 16 Nov 2010
Posts: 588
Location: Kirkland, WA

View user's profile Send private message

PostPosted: Thu Oct 25, 2012 9:07 am     Reply with quote

You might want to get a copy of the book "Building Wireless Sensor Networks" by Robert Faludi - it was the only decent source of information out there that I found when I was looking for it (I am including a ZigBee link in my hummingbird feeder heater ... that I really need to get finished - we are starting to see frost around here!). Lots of good info in that book on how to use them and get them to talk together.
_________________
mikey
-- you can't have too many gadgets or too much disk space !
old engineering saying: 1+1 = 3 for sufficiently large values of 1 or small values of 3
fazreen



Joined: 18 Oct 2012
Posts: 10

View user's profile Send private message

this program can use for pic to pic by using two xbee ?
PostPosted: Sun Nov 04, 2012 5:54 am     Reply with quote

This program can use for comunicate pic to pic by using two xbee ? and it is use uart protocol ?
Transmitter
Code:

/* pic2pic_transmit.c
ME333 Lab 5
The transmitter checks to see if PIN A0 is high or low.
If the  pin is high, the transmitter sends the signal 'a' to the receiver and
turns on an LED. If the pins is low, the transmitter sends the signal 'b'.
*/

#include <18f4520.h>
#fuses HS,NOLVP,NOWDT,NOPROTECT       
#use delay(clock=20000000)       // 20 MHz crystal on PCB
//#use rs232(baud=19200, xmit=PIN_A0, rcv=PIN_A1)    // you can use any pins for software uart...
#use rs232(baud=9600, UART1)       // hardware uart much better; uses  RC6/TX and RC7/RX
// characters tranmitted faster than the pic eats them will cause UART to hang.

#include <stdlib.h>

#define LED_0 PIN_D0

void main() {
   while (TRUE) {
      if (input(PIN_A0)){
         output_high(LED_0);
         printf("a"); //sends signal a
       }
       else{
         output_low(LED_0);
         printf("b"); //sends signal b
       }
       
       }
   }

Receiver
Code:

/* pic2pic_receive
ME 333 Lab 5
The receiver checks the signal from the XBEE and if the signal is 'a', the receiver turns on an LED.
*/

#include <18f4520.h>
#fuses HS,NOLVP,NOWDT,NOPROTECT       
#use delay(clock=20000000)       // 20 MHz crystal on PCB
//#use rs232(baud=19200, xmit=PIN_A0, rcv=PIN_A1)    // you can use any pins for software uart...
#use rs232(baud=9600, UART1)       // hardware uart much better; uses  RC6/TX and RC7/RX
// characters tranmitted faster than the pic eats them will cause UART to hang.

#define LED_0 PIN_D0

#include <stdlib.h>

char x;

void main() {
   while (TRUE) {
       if (kbhit()) {
         x = getc();
       }
       if (x=='a'){
         output_high(LED_0);
         
       }
       else{
         output_low(LED_0);
         
       }
   }
}
ckielstra



Joined: 18 Mar 2004
Posts: 3680
Location: The Netherlands

View user's profile Send private message

PostPosted: Mon Nov 05, 2012 5:42 pm     Reply with quote

In the program from your other (closed) thread, change the
Code:
if(data='b')
to
Code:
if(data=='b')


Also, when posting code in the forum please use the 'code' buttons. You do know how this works. It makes your code much easier to read and will get you quicker and better answers.

And, please be correct in writing comments:
Code:
#use delay (clock=20M)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, bits=8, parity=N, errors ) // 4 MHZ CRYSTAL
4MHz or 20MHz ????
and also:
Code:
//set_tris_c(0x80); // SET ALL PORT d AS OUTPUT PORT(0b 0000 0000)
Port c or port d??? And not all pins are output, pin 7 is input.

You have more errors like this. Better not to write comments then to write bad comments.
gpsmikey



Joined: 16 Nov 2010
Posts: 588
Location: Kirkland, WA

View user's profile Send private message

PostPosted: Mon Nov 05, 2012 7:59 pm     Reply with quote

One suggestion I came across some time ago that I have been trying to follow to avoid the "if(data='b') " error is to write it reversed. Write the code as "if('b'==data)" -- that way when you forget the double == and use a single one, the compiler throws it out instead of quietly assigning the letter b to data (which is always true). Saved me a few times now Very Happy

mikey
_________________
mikey
-- you can't have too many gadgets or too much disk space !
old engineering saying: 1+1 = 3 for sufficiently large values of 1 or small values of 3
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group