|
|
View previous topic :: View next topic |
Author |
Message |
Jan Noman
Joined: 28 May 2005 Posts: 14
|
long_data again |
Posted: Thu Jun 09, 2005 2:53 am |
|
|
Dear Users of CCS C compiler
I want to send 16 bit value from PIC to PIC by radio (cc1000 chip) in
mode transparent UART and put it to LCD in "RECEIVE PIC"ALL work wery fine when I send and receive single 8bit value
eg.
In TX putc('U'); , in RX c=getc();
NECESSARY INVERT I realize by hardware (transistor) therefore I can to use PIC UART in hardware mode.
Is many examples in this forum but generality for send or receiving from or to PC computer no PIC to PIC
simply kod
#use RS232(...... Long_data,bits=9 ...)
.................................................
TX:
while(true)
{
value=45678;
putc(value):
delay_ms(10);
............................................
RX:
#use RS232(...... Long_data,bits=9 ...)
long c:
........................................................
while(true)
{
c=getc()
printf(lcd_putc,"\f\%05lu",c);
}
...........................................
NOT WORK
Thanks in advance
Best regards
JAN
PS
TX PIC 18F252,RX PIC 18F458
compiler 3.221 |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Jun 09, 2005 5:22 pm |
|
|
The compiler generates incorrect code for the putc() function
when the LONG_DATA parameter is used. The code for the
getc() function looks OK. So you need to create your own putc()
function for 9-bit data. I've done that in the program below.
It's called putc_9_bits().
I don't have a terminal program that uses 9 bits, so I can't test
this, but I believe it should work.
Code: | #include <18F458.h>
#fuses XT, NOWDT, NOPROTECT,PUT,BROWNOUT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, BITS=9, LONG_DATA, ERRORS)
#byte TXREG = 0xFAD
#byte TXSTA = 0xFAC
#byte PIR1 = 0xF9E
#bit TXIF = PIR1.4
#bit TX9D = TXSTA.0
void putc_9_bits(int16 c)
{
while(~TXIF);
TX9D = bit_test(c, 8);
TXREG = c;
}
//===================
void main()
{
int16 c;
while(1)
{
c = getc();
putc_9_bits(c);
}
} |
|
|
|
|
|
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
|