We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
xdata unsigned long var_long _at_ 0x0150; unsigned char * pointer; pointer=0x0150; var_long=0x45213256; SBUF=*pointer; ... SBUF=*(pointer+1); ... SBUF=*(pointer+2); ... SBUF=*(pointer+3); ...
my uart communication work, when i send datas byte one byte. when i try to send a long variable in above form , uart com. dont work. is this format illegal? xdata unsigned long var_long _at_ 0x0150; unsigned char * pointer; pointer=0x0150; var_long=0x45213256;
*pointer : 0x45 ?? *(pointer+1) : 0x21 ?? *(pointer+2) : 0x32 ?? *(pointer+3) : 0x56 ??
you'r right, my question wasn't clear;
SBUF=0x12; ... SBUF=0x45 ... SBUF=0x63; ... SBUF=0x24;
(... = while(TI==0); TI=0;)
when i send datas byte one byte, i can get this bytes at other device. but i try to send a byte which at specific adress. (in this form other device can't get anything)
xdata unsigned long long_data _at_ 0x0010;
long_data=0x45256541;
0x0010 : 0x45 0x0011 : 0x25 0x0012 : 0x65 0x0013 : 0x41
"in this form other device can't get anything"
You have two possibilities:
1. Your code didn't send anything;
2. Your code did send something, but the other device didn't receive it.
Only you can answer that!
Are you sure that your other device can cope with receiving bytes so close together?