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

rs232 problem with dat.net

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



Joined: 05 Oct 2016
Posts: 120

View user's profile Send private message

rs232 problem with dat.net
PostPosted: Thu Aug 24, 2017 4:03 am     Reply with quote

Hello,

My friend and i are working on a project and try to communicate via bluetooth.

I use 18f2550 and wrote this code:
Code:

#include <18F2550.h>
#DEVICE ADC=10
#fuses INTRC_IO,NOWDT,MCLR,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,CPUDIV1,VREGEN
#use delay(clock=8000000)
#use rs232(baud=9600, UART1, ERRORS,stream = bt)


void main()
{
delay_ms(1000);
   while(true)
   {
      putc('a',bt);
      delay_ms(1000);
   }
}


I can see the 'a' letter on putty. I tried the alternative with printf instead of putc().

The problem is he can not get the data i send. The interesting part is he gets data successfully from Arduino. So does anyone know what might be difference on comm protocols between Arduino and PIC ?

Is there something wrong on my code ? Or is there an alternate way to send data besides printf or putc ?

Thank you so much.

Best wishes,

Doguhan


Note:
I tried the code with another version:
Code:

#include <18F2550.h>
#DEVICE ADC=10
#fuses INTRC_IO,NOWDT,MCLR,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,CPUDIV1,VREGEN
#use delay(clock=8000000)
#use rs232(baud=9600, UART1, ERRORS,stream = bt)
#use rs232(baud=9600, xmit=PIN_B1,stream = motormodul)

void main()
{
delay_ms(1000);
   while(true)
   {
      printf("a");
      delay_ms(1000);
   }
}


The problem at this version i cannot see the letter 'a'. PIC doesn't print anything. But if i add any input before the printing like if(kbhit(bt)) it starts to print data. So i assumed it cannot know from which stream to print. Am i right ?
temtronic



Joined: 01 Jul 2010
Posts: 9245
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Thu Aug 24, 2017 4:52 am     Reply with quote

Since the first program does work in sending the 'a' to a PC running putty, I'd say it's probably a problem with the bluetooth module.

You should post a link to the datasheet of the exact module you're using. One thing I've seen is that today's 'devices and 'modules' generally tend to be 3 volt devices and they will NOT correctly work with 5 volts PIC if connected directly.

The next issue I see is NO BT initialization routines. I can't see how 2 BT devices can talk to each other without some form of 'setup' being necessary. There has to be some startup/init/setup code otherwise BT devices wouldn't know who and how to communicate with.

Does the receiving PIC pass the 1Hz LED test program ? I'd have both PICs flash an LED (toggle) for every pass of the loop.It's a simple 'I'm working' visual aid for us humans.


This is a case where we need a lot more information
Jay
doguhanpala



Joined: 05 Oct 2016
Posts: 120

View user's profile Send private message

PostPosted: Thu Aug 24, 2017 5:46 am     Reply with quote

temtronic wrote:
Since the first program does work in sending the 'a' to a PC running putty, I'd say it's probably a problem with the bluetooth module.

You should post a link to the datasheet of the exact module you're using. One thing I've seen is that today's 'devices and 'modules' generally tend to be 3 volt devices and they will NOT correctly work with 5 volts PIC if connected directly.

The next issue I see is NO BT initialization routines. I can't see how 2 BT devices can talk to each other without some form of 'setup' being necessary. There has to be some startup/init/setup code otherwise BT devices wouldn't know who and how to communicate with.

Does the receiving PIC pass the 1Hz LED test program ? I'd have both PICs flash an LED (toggle) for every pass of the loop.It's a simple 'I'm working' visual aid for us humans.


This is a case where we need a lot more information
Jay


Hello Jay

I explained wrong. My code is uploaded to pic. My friends writes a software that uses unity game engine. There is not another pic. I am talking about one pic to computer communication.

The module is hc-05.

Thank you so much!
gaugeguy



Joined: 05 Apr 2011
Posts: 303

View user's profile Send private message

PostPosted: Thu Aug 24, 2017 6:51 am     Reply with quote

In the putc version you had only one uart defined and called out the stream name. In the printf version you have two uarts defined and did not use the stream. With more than one uart you should use the stream to define which uart the data is being sent to.

Use fprintf(bt,"a") and I think you will have better results.
doguhanpala



Joined: 05 Oct 2016
Posts: 120

View user's profile Send private message

PostPosted: Thu Aug 24, 2017 7:18 am     Reply with quote

gaugeguy wrote:
In the putc version you had only one uart defined and called out the stream name. In the printf version you have two uarts defined and did not use the stream. With more than one uart you should use the stream to define which uart the data is being sent to.

Use fprintf(bt,"a") and I think you will have better results.


Thank you so much!
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